为什么张贴到脸书页面产量“用户没有授权的应用程序”
我已阅读fb文档和书面代码发布消息到Facebook“页面”,但是我收到了一个我不希望看到的错误:
(#200) The user hasn't authorized the application to perform this action
以下是我所做的:
- 我build立了一个facebook应用程序,它提供了我的
APP_ID
和APP_SECRET
。 - 我build立了一个testingFacebook的“页面”。 让我们把它的fb id称为
PAGE_ID
。 - 使用OAuth获取用户的范围为“publish_actions,manage_pages”的USER_ACCESS_TOKEN。 当我redirect到Facebook身份validation页面时,我接受了我的应用程序所要求的权限。
- 我使用
USER_ACCESS_TOKEN
在https://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_pages
和publish_actions
。
我在哪里缺less授权应用程序? 我需要额外的范围吗? 我错过点击Facebook授权屏幕上的东西吗? 有没有我失踪的应用程序的设置? 经过几天的debugging,我必须对这个问题视而不见。 : – |
status_update
不再使用。 要在网页上发布,我必须同时使用manage_pages
和publish_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理器中你必须看两者:
- 应用程序目前在顶部,相当微妙,我错过了这个年龄。
- 获取令牌下拉菜单单击以获取令牌,单击箭头时,可以select您有权访问的页面和其他项目,以便为其select令牌。