为什么张贴到脸书页面产量“用户没有授权的应用程序”

我已阅读fb文档和书面代码发布消息到Facebook“页面”,但是我收到了一个我不希望看到的错误:

(#200) The user hasn't authorized the application to perform this action 

以下是我所做的:

  • 我build立了一个facebook应用程序,它提供了我的APP_IDAPP_SECRET
  • 我build立了一个testingFacebook的“页面”。 让我们把它的fb id称为PAGE_ID
  • 使用OAuth获取用户的范围为“publish_actions,manage_pages”的USER_ACCESS_TOKEN。 当我redirect到Facebook身份validation页面时,我接受了我的应用程序所要求的权限。
  • 我使用USER_ACCESS_TOKENhttps://graph.facebook.com/me/accounts上做了一个GET,然后找回我pipe理的页面列表,包括我想要发布的页面。

这个页面的数据块如下所示:

 { "data": [ { "category": "Community", "name": "My Generic Test Page", "access_token": PAGE_ACCESS_TOKEN, "id": PAGE_ID, "perms": [ "ADMINISTER", "EDIT_PROFILE", "CREATE_CONTENT", "MODERATE_CONTENT", "CREATE_ADS", "BASIC_ADMIN" ] }, .... ] } 

然后我使用PAGE_ACCESS_TOKEN将消息发布到页面:

  • 我在https://graph.facebook.com/PAGE_ID/feed上做了一个POST,其字段message等于This is a test post.

Facebook返回:

 { "error": { "message": "(#200) The user hasn't authorized the application to perform this action", "type": "OAuthException", "code": 200 } } 

使用令牌debugging器 ,我可以确认我的PAGE_ACCESS_TOKEN是有效的,并且具有范围: manage_pagespublish_actions

我在哪里缺less授权应用程序? 我需要额外的范围吗? 我错过点击Facebook授权屏幕上的东西吗? 有没有我失踪的应用程序的设置? 经过几天的debugging,我必须对这个问题视而不见。 : – |

status_update不再使用。 要在网页上发布,我必须同时使用manage_pagespublish_pages

例如,您应该添加名为status_update的权限

https://www.facebook.com/dialog/permissions.request?_path=permissions.request&app_id=145634995501895&redirect_uri=https%3A%2F%2Fwww.facebook.com%2Fconnect%2Flogin_success.html%3Fdisplay%3Dpage&response_type=token&fbconnect=1&perms= status_update&from_login = 1&m_sess = 1&RCOUNT = 1

在这里输入图像描述

和我能够张贴到网页我喜欢与我刚刚获得的访问令牌: 在这里输入图像描述

如果您想以页面的pipe理员身份进行发布,则需要具有manage_pages和status_update权限

https://www.facebook.com/dialog/permissions.request?_path=permissions.request&app_id=145634995501895&redirect_uri=https%3A%2F%2Fwww.facebook.com%2Fconnect%2Flogin_success.html%3Fdisplay%3Dpage&response_type=token&fbconnect=1&perms= manage_pages%2Cstatus_update&from_login = 1&m_sess = 1&RCOUNT = 1

在这里输入图像描述

干杯

那么,这似乎是我们大多数人在尝试从事社交networking活动时犯的一个常见错误。 在尝试打开graphics操作之前,您需要在初始授权请求中设置权限。 默认情况下,您只能获得对其基本信息的“只读”访问权限。 Facebook和LinkedIn API必须在authentication时进行设置。

在这里查看Facebook open graph权限中的public_actions部分,并在授权码中进行相关更改,并解决您的问题。

我发现最好的方式来获得一个有效的标记和检查权限是通过graphicsAPI浏览器,但Facebook的文件是广泛的,它并不总是最容易遵循。

在资源pipe理器中你必须看两者:

  1. 应用程序目前在顶部,相当微妙,我错过了这个年龄。
  2. 获取令牌下拉菜单单击以获取令牌,单击箭头时,可以select您有权访问的页面和其他项目,以便为其select令牌。