我正在我的测试应用上测试分数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'以及我的参数。
在这种情况下有什么问题?
答案 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