2011-10-19 9 views
1

私はテストアプリケーションでスコアapiをテストしています。解決方法「このメソッドは、アプリケーションのaccess_tokenで呼び出す必要があります」というエラーがありますか?

だから私は以下の権限で私のアプリを歌った。

publish_stream, 
publish_actions, 
user_status, 
user_photos 

でログインした後、私は次のエラーを取得するPHP

$loggedUser = $Facebook->getUser(); 
$scoreUpdate = $Facebook->api('/'.$loggedUser."/scores", 'post', array('score'=> 100)); 

で次のAPIを要求しています。

This method must be called with an app access_token

だから私は、SDKはFacebookを利用して送信している、と私はそれが私のparamsと一緒に「access_tokenは」を送信していることが確認できたものをチェックしました。

この場合の問題は何ですか?

答えて

2

ユーザートークンと、Application tokenの2つのトークンがあります。後で必要です。

が見つかった場合、PHP-SDKはユーザaccess_tokenを追加します。と思われます。私はあなたがhow-to for publishing scores

例は、私のtutorialから取られた公式のFacebookを読むことをお勧め:

$APPLICATION_ID = "APP_ID"; 
$APPLICATION_SECRET = "APP_SECRET"; 

$token_url = "https://graph.facebook.com/oauth/access_token?" . 
       "client_id=" . $APPLICATION_ID . 
       "&client_secret=" . $APPLICATION_SECRET . 
       "&grant_type=client_credentials"; 
$app_token = file_get_contents($token_url); 
+1

// ah..yes!それが問題でした。 facebook php sdkを使用してアプリケーショントークンを取得することは可能ですか?何らかの理由で@ifaourを削除しています... – Moon

+0

'manage_pages'を許可し、' me/accounts'を呼び出して 'access_token'を取得するのが同じであるかどうかはわかりませんが、ただこれのために。あなたの最後の文はどういう意味ですか? – ifaour

+0

//あなたの答えに感謝します。ああ...私の最後の文を無視する...私は "@ifaour"を使用しましたが、stackoverflowはコメントから削除し続けます。ちなみに – Moon

5

アプリaccess_tokenはすることができます。このような単純なメイクを:

$facebook->api('/me/scores', 'POST', array( 'score' => 100, 'access_token' => $facebook->getAppId().'|'.$facebook->getApiSecret() ));

出来上がり

2
$ret_obj = $fb->api('/' . $fb->getUser() . '/scores', 'POST', array(
    'score' => 100, 
    'access_token' => $fb->getAppId().'|'.$fb->getApiSecret() 
)); 

access_tokenパラメータでappアクセストークンを指定すると、最終的に/ meを使用できなくなるため、ユーザーIDについて具体的に指定する必要があります。そうでなければ、このエラーが発生します。「OAuthException:現行のユーザーに関する情報を照会するためにアクティブなアクセス・トークンを使用する必要があります。」facebook Uncaught OAuthException: An active access token must be used to query information about the current user

関連する問題