张贴到Facebook错误:'(#200)用户没有授权应用程序执行此操作',键入:'OAuthException',代码:200

当我尝试从我的应用程序发布通过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}

而我有另一个问题,访问令牌应该使用用户的访问令牌,应用程序访问令牌或什么?

您需要用户允许publish_actions扩展权限,以允许您的应用发布到Facebook。

请参阅发布部分的me / feed参考:“具有publish_actions权限的用户访问令牌可用于发布新post”。 用户需要被提示“你可以这个应用程序发布到Facebook”,并接受这个访问令牌的工作。

请注意, 尝试发布之前检查用户权限是一种很好的做法,您可以通过查看me/permissionsterminal来进行检查:

 { "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'});