我正在尝试使用Facebook登录后向我的用户请求publish_actions
。登录成功,但publish_actions
窗口甚至不会弹出。
我已尝试使用以下代码将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返回对象{authResponse:对象,状态:"已连接"}
响应2返回对象{data:Array [0]}
ERROR 本身是未捕获的TypeError:无法读取属性' status'未定义的
答案 0 :(得分:1)
首先,如果您已经使用return_scopes
,则无需使用其他API调用来获取权限。授权的权限将在FB.login
的响应中。
话虽如此,如果您在授权过程中没有被要求publish_actions
,那么很可能是因为您正在尝试与应用中没有角色的用户。 publish_actions
需要经过Facebook审核才能上市。
错误很明显,没有“response.data [0]”。使用索引直接访问数组值不是一个好主意。可能没有填充数组,就像这里的情况一样。
有关登录审核的更多信息:https://developers.facebook.com/docs/facebook-login/review
答案 1 :(得分:1)
您无需更改代码中的任何内容。只需要访问您的Facebook应用程序页面并提交评论 publish_actions ,在您获得批准后,一切都应该正常工作。