如何修复“(#200)用户没有授权应用程序执行此操作”;在facebook墙上发帖时出错


How to fix "(#200) The user hasn't authorized the application to perform this action" error while posting on facebook wal

当在用户的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