如何解决'此方法必须使用app access_token调用'错误?

时间:2011-10-19 18:20:21

标签: php facebook facebook-graph-api graph

我正在我的测试应用上测试分数api。

所以...我已经使用以下权限烧毁了我的应用程序。

publish_stream,
publish_actions,
user_status,
user_photos

登录后,我在PHP中请求以下api

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

我收到以下错误。

  

必须使用app access_token

调用此方法

所以我已经检查了sdk发送到Facebook的内容,并且我已经确认它正在发送'access_token'以及我的参数。

在这种情况下有什么问题?

3 个答案:

答案 0 :(得分:5)

app access_token你可以这么简单地做到:

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

答案 1 :(得分:2)

现在有两个令牌,一个用户令牌......和一个Application token。你需要晚一点。

现在,如果用户access_token找到了我认为你的案例,那么它将附加用户$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); 。我建议你阅读官方Facebook how-to for publishing scores

tutorial获取的示例:

{{1}}

答案 2 :(得分:2)

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

如果在access_token参数中指定应用访问令牌,您最终将无法使用/ me,因此您必须具体说明用户ID。否则,您会收到以下错误:“OAuthException:必须使用活动访问令牌来查询有关当前用户的信息”,如下所述:facebook Uncaught OAuthException: An active access token must be used to query information about the current user