当我尝试从我的应用程序通过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}
我有另一个问题 应该使用whaat访问令牌 用户的访问令牌,应用程序访问令牌或什么?
答案 0 :(得分:1)
您需要用户允许publish_actions扩展权限,以允许您的应用发布到Facebook。
请参阅me/feed参考的发布部分:"具有publish_actions权限的用户访问令牌可用于发布新帖子"。需要提示用户"您是否可以将此应用发布到Facebook"并接受此访问令牌的工作。
请注意,在尝试发布之前检查用户的权限是一种很好的做法,您可以通过查看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
});
要向用户询问权限,您需要添加" publish_actions"运行scope
对话框时进入FB.login
:
FB.login(function(response) {
// handle the response
}, {scope: 'publish_actions'});