2012-02-16 12 views
0

私はfacebook-php-sdkを使用しています。私の要件はユーザーの壁にストーリーを投稿することです。私のアプリは、サインアップ/ログイン時にユーザーに 'publish_stream'権限を要求します。ユーザーが権限を許可してログインした後、何とか私のアプリでユーザーが作成した新しいコメントをFacebookの壁に公開することができません。Facebook-ユーザーの壁にストーリーを公開する

$facebook = new Facebook(array(
           'appId' => "$fb_app_id", 
           'secret' => "$fb_secret", 
           'cookie' => true 
         )); 
try { 
      $fb_user_id = $facebook->getUser(); 
      $access_token = $facebook->getAccessToken(); 
      $facebook->api("/me/feed", 'post', array(
             'access_token' => $access_token, 
             'message' => 'I love SO', 
             'link' => 'http://mydomain.com', 
             'picture' => 'http://thinkdiff.net/ithinkdiff.png', 
             'name' => 'iOS Apps & Games', 
             'description'=> 'Checkout iOS apps and games from iThinkdiff.net. I found some of them are just awesome!' 
            ) 
          ); 
      } catch (FacebookApiException $e) { 
       echo '<pre>'.htmlspecialchars(print_r($e, true)).'</pre>'; 
      } 

アプリ&クリックを選択する上でのアクセスを取得します

+0

があり、これを試してみてください、Facebookのウォールに投稿するには、次のコードを使用することができます:チェックアップあなたはサイトのURLに正しいURL を設定しますこのコードをFacebookのアプリまたは外部のWebサイトで実行していますか?最初のケースでは、api-method-callでアクセストークンを削除してみてください。 –

+0

Facebook PHP SDKのバージョン3を使用していますか? – fire

+0

@Blauesocke:これは外部のウェブサイトで使っています。 apiメソッド呼び出しでアクセストークンを削除しようとしましたが、同じ問題が残ります。 – Ninja

答えて

1

あなただけの適切な引数を持つ関数を呼び出す

<?php 


function doWallPost($postName='',$postMessage='',$postLink='',$postCaption='',$postDescription='') 
{ 
$FB_APP_ID='xxxxxxxxxxxxxxxxxxxxxxxx'; 
$FB_APP_SECRET='xxxxxxxxxxxxxxxxxxxxxxxxxxx'; 

$APP_RETURN_URL=((substr($_SERVER['SERVER_PROTOCOL'],0,4)=="HTTP")?"http://":"https://").$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']; 

$code = $_REQUEST["code"]; 

if(empty($code)) 
{ 
    $dialog_url = "http://www.facebook.com/dialog/oauth?client_id=".$FB_APP_ID."&redirect_uri=".$APP_RETURN_URL."&scope=publish_stream";     
    header("Location:$dialog_url"); 
} 

$token_url = "https://graph.facebook.com/oauth/access_token?client_id=".$FB_APP_ID."&redirect_uri=".urlencode($APP_RETURN_URL)."&client_secret=".$FB_APP_SECRET."&code=".$code; 
$access_token = file_get_contents($token_url); 

$param1=explode("&",$access_token); 
$param2=explode("=",$param1[0]); 
$FB_ACCESS_TOKEN=$param2[1]; 


$url = "https://graph.facebook.com/me/feed"; 
$attachment = array( 'access_token' => $FB_ACCESS_TOKEN,       
       'name'   => $postName, 
       'link'   => $postLink, 
       'description' => $postDescription, 
       'message'  => $postMessage, 
       'caption'  => $postCaption, 
      ); 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,2); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $attachment); 
$result=curl_exec($ch); 
header('Content-type:text/html'); 
curl_close($ch); 

return $result 
} 







?> 
+0

上記のコードでurのappidとurの秘密を与えるのを忘れないでください –

+0

@忍者これはあなたのために働いた場合、いくつかのupvoteを行います –

0

自分の考えをしてください共有https://developers.facebook.com/tools/explorer/ を通じて再びアプリをインストールします:

Invalid OAuth access token signature 

これは私が何をすべきかです:これは私が取得エラーですトークン まだ問題がある場合は、開発者のダッシュボードにアクセスしてください https://developers.facebook.com/apps 編集設定をクリックしてくださいフィールド

関連する問題