1

Facebook Graph APIを使用して、ユーザーのstausメッセージを更新しようとしています。

使用中に次のエラーが発生します。新しいグラフSDKが適切に参照されていないと思いますか?

Notice: Undefined property: Facebook::$api_client in /users/home/aafhe7vh/web/public/update.php  on line 9

Fatal error: Call to a member function users_hasAppPermission() on a non-object in /users/home/aafhe7vh/web/public/update.php on line 9

これは私が使用しているファイルですhttp://github.com/facebook/php-sdk/blob/master/src/facebook.php

以下は私のupdate.phpの内容です:


# <?php  

  include_once ('facebook.php');
  $api_key = '@@@@@@@@@@@@@@@@@@@2';
  $secret  = '$$$$$$$$$$$$$$$$$$$$44';
  global $facebook;
  $facebook = new Facebook($api_key, $secret);

# include_once("config.php");  
# if (!$facebook->api_client->users_hasAppPermission("status_update")){  
# echo '<fb:prompt-permission perms="status_update" next_fbjs="greet()">Let us update your status </fb:prompt-permission>';  
# $visibility = "none";  
# }  
# else  
# $visibility = "block";  
#   
# if(isset($_POST['hello']))  
# {  
#     $facebook->api_client->users_setStatus($_POST['hello']);  
#     echo "<p>Your status has been updated</p>";  
# }  
# ?>  
# <div id="statusdiv" style="display:<?=$visibility;?>;">  
#     <form method="POST">  
#         Please update your status:<br/>  
#         <input type="text" name="status" /> <br/>  
#         <input type="submit" value="change status" />  
#     </form>  
# </div>  
#   
# <script>  
# 
function greet()  
# {  
#     var session = "<?=$facebook->api_client->session_key;?>";  
#     document.getElementById("statusdiv").setStyle("display","block");  
#     new Dialog().showMessage("Info","Thank you for granting us this permission! ");  
# }  
</script>

私はここから上記のコードを使用しました、http://fbcookbook.ofhas.in/tag/extended-permission/

config.phpに何が含まれるべきかわからないため、コードからその行を削除しました。

ありがとう。

4

2 に答える 2

1

最新のPHPSDKを含めていますが、コードは古いSDK用に記述されています。したがって、SDKの以前のバージョンにダウングレードするか、実装を変更してください。

// Old SDK
$facebook->api_client->users_setStatus($_POST['hello']);  

// New SDK
$facebook->api ( array(
    'method' => 'users.setStatus'
  , 'status' => $_POST['hello']
  , 'uid'    => /* user's facebook id */
) );

パラメータの詳細については、対応するドキュメントを参照してください。

編集

あなたの質問への回答

1]新しいSDKを使用する場合-すべてが異なります。このようなオブジェクトを作成する必要があります

$facebook   = new Facebook(array(
    'appId'  => 'FB_APP_ID'
  , 'secret' => 'FB_APP_SECRET'
  , 'cookie' => true
));

2]上記の私のコードを修正しました

3] http://developers.facebook.com/docs/reference/api/

于 2010-06-24T20:55:09.690 に答える
-1

Graph APIを使用すると、ユーザーがアプリケーションを許可するときに、「status_updateが必要です」と言う必要があります。

于 2010-06-24T18:19:53.333 に答える