发布到Facebook - 用户尚未授权应用程序执行此请求

时间:2014-10-19 06:31:11

标签: android facebook facebook-graph-api cordova

我正在尝试设置我的应用,因此用户可以登录到Facebook,然后我可以为他们上传帖子,简单。

我有这段代码

// let the user login
FB.login(function(response) {
    if (response.authResponse) {
        alert(JSON.stringify(response.authResponse));
        // post to facebook
        // create our facebook data object
        var data = {
            access_token: response.authResponse.accessToken,
            message: "Upload this post to facebook"
        };
        // success, now upload the rest of the post, text etc
        FB.api('/me/feed', 'post', data, function(response) {
            if (!response || response.error) {
                alert("There was an error uploading your post to facebook: " + response
                    .error.message);
            } else {
                alert("error: " + JSON.stringify(response));
            }
        });
    } else {
        alert(
            'There was an error logging you in to facebook, or you did not authorize the app to post on your wall'
        );
    }
}, {
    scope: 'publish_stream'
});  

由于这是一个cordova应用程序,我在我的设备就绪事件中有这个

// initialize facebook
FB.init({
    appId: "123456789",  // facebook appId
    nativeInterface: CDV.FB,
    useCachedDialogs: false
});

现在你可以看到,我要求获得许可" publish_stream"我认为这是正确的,但我在试图发帖时不断收到消息,说

There was an error uploading your post to facebook (#200). The user hasn't authorizard the application to perform this request

我很清楚。

我在近一年前创建的另一个应用程序上有这个,这一切似乎都运行良好。

我读到的一件事是" publish_stream"或" publish_actions"现在登录时无法使用,除非您提交应用以供审核?这是仅适用于创建的新应用程序,因为我没有使用我的其他应用程序,但它似乎工作。此应用程序在您登录后也会显示一条消息,如下所示。我相信我的其他应用程序不会显示此

enter image description here

编辑: 我检查了我的其他应用程序,它没有显示上述消息。这是截图

enter image description here

任何帮助都会被贬低。

1 个答案:

答案 0 :(得分:1)

  • publish_stream已弃用,请使用publish_actions
  • 在将publish_actions用于其他用户之前,您必须完成login review流程 - 或者该权限仅适用于在您的应用中具有角色的用户(管理员/开发人员/测试人员)

顺便说一句,您不能预先填写消息参数,它必须始终是100%用户生成的。并且在登录(或永远)之后不要“autopost”。这也是违反规则的。有关详细信息,请查看平台政策:https://developers.facebook.com/policy/