Facebook publish_permission 返回错误

Facebook publish_permission is returning error

我尝试在使用 Facebook 登录后向我的用户请求 publish_actions。登录成功但是publish_actions window 甚至不会弹出。 我已经尝试了下面的代码来获得用户对 publish_actions 的权限,但它一直返回错误。

function autoPost(){
    FB.login(function(response){
        console.log("Response 1", response);
        FB.api('/me/permissions/publish_actions', function(response) {
            console.log("Response 2", response);
            if ((response.data[0].status === "granted")){
                publish = 1;
            }
            else {
                publish = 0;
            }
        });
    }, {scope: 'publish_actions', return_scopes: true});
}

响应 1 returns 对象 {authResponse:对象,状态:"connected"}

响应 2 returns 对象 {数据:数组[0]}

ERROR 本身是 Uncaught TypeError: Cannot read 属性 'status' of undefined

首先,如果您已经使用 return_scopes,则无需使用另一个 API 调用来获取权限。授权权限将在 FB.login 的响应中。

话虽如此,如果您在授权过程中没有被要求提供 publish_actions,这很可能是因为您尝试与在应用程序中没有角色的用户一起尝试。 publish_actions 需要通过 Facebook 审核才能使用它 public。

错误很明显,没有"response.data[0]"。直接使用索引访问数组值不是一个好主意。数组可能未填充,就像这里的情况一样。

有关登录审核的更多信息:https://developers.facebook.com/docs/facebook-login/review

您无需更改代码中的任何内容。只需访问您的 Facebook 申请页面并提交审核 publish_actions ,在您获得批准后一切正常。