当在用户的facebook墙上发布消息时,我得到"(#200)用户尚未授权应用程序执行此操作"错误。我正在使用facebook图形API。我还在范围中设置了"publish_actions"权限,但没有工作。我的代码是
require 'facebook/facebook.php';
$facebook = new Facebook(array(
'appId' => APP_ID,
'secret' => APP_SECRET,
));
$user = $facebook->getUser();
if ($user) {
$accessToken = $facebook->getAccessToken();
try {
//create message with token gained before
$post = array(
'access_token' => $accessToken,
'message' => 'Test message'
);
$res = $facebook->api('/me/feed', 'POST', $post);
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
} else {
# There's no active session, let's generate one
$login_url = $facebook->getLoginUrl(array(
'scope' => 'publish_actions'
));
header("Location: " . $login_url);
}
你能告诉我我在代码或在应用程序中缺少什么?
既然你提到它确实适用于管理员,但不适用于其他任何人,那么问题就很清楚了:你需要通过publish_actions
的登录审查-否则,该权限只适用于在应用程序中具有角色的用户。
关于Login Review的所有信息都在文档中:https://developers.facebook.com/docs/facebook-login/review