当我尝试从我的应用程序通过 facebook 发布内容时,出现以下错误,问题是应用程序没有请求发布操作权限 这是代码
var access_token = 'access_token'
FB.setAccessToken(access_token);
var body = '2 4 6 8 8.5';
FB.api('me/feed', 'post',{ message: body, access_token:access_token}, function (res) {
if(!res || res.error) {
console.log(!res ? 'error occurred' : res.error);
return;
}
{ message: '(#200) 用户尚未授权应用程序执行此操作', 类型:'OAuthException', 代码:200 }
我还有一个问题 应该使用什么访问 token 用户的访问 token 、应用程序访问 token 还是什么?
请您参考如下方法:
您需要用户允许publish_actions扩展权限才能允许您的应用发布到Facebook。
请参阅 me/feed 的发布部分引用:“具有publish_actions权限的用户访问 token 可用于发布新帖子”。需要提示用户“您是否可以将此应用发布到 Facebook”并接受此访问 token 才能工作。
请注意,最好在尝试发布之前检查用户的权限,您可以通过查看 me/permissions
端点进行检查:
{
"data": [
{
"permission": "installed",
"status": "granted"
},
{
"permission": "public_profile",
"status": "granted"
},
{
"permission": "publish_actions",
"status": "granted"
},
{
"permission": "user_friends",
"status": "granted"
}
]
}
您可以通过运行获取此数据:
FB.api("/me/permissions", function (response) {
// data here
});
要请求用户许可,您需要在运行 FB.login
对话框时将“publish_actions”添加到 scope
中:
FB.login(function(response) {
// handle the response
}, {scope: 'publish_actions'});