发布到Facebook错误:'(#200)用户尚未授权应用程序执行此操作',请键入:' OAuthException',代码:200

时间:2014-06-21 06:37:51

标签: facebook node.js post

当我尝试从我的应用程序通过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访问令牌 用户的访问令牌,应用程序访问令牌或什么?

1 个答案:

答案 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'});