我已阅读fb文档和编写代码以将消息发布到Facebook“页面”,但是我收到的错误是我不希望看到的:
(#200) The user hasn't authorized the application to perform this action
这就是我所做的:
APP_ID
和
APP_SECRET
。PAGE_ID
。USER_ACCESS_TOKEN
。我在重定向到facebook身份验证页面时接受了我的应用程序请求的权限。https://graph.facebook.com/me/accounts
在USER_ACCESS_TOKEN
上进行了GET,我收到了一份我管理的网页列表,包括我要发布的网页。我页面的这个数据块如下:
{
"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
上发帖,其中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
}
}
使用token debugger,我可以确认我的PAGE_ACCESS_TOKEN
有效,并且具有范围:manage_pages
和publish_actions
。
我在哪里缺少授权申请?我需要额外的范围吗?我是否错过了在facebook授权屏幕上点击的内容?是否有我错过的应用程序设置?经过几天的调试,我必须对这个问题视而不见。 : - |
答案 0 :(得分:27)
您应该添加名为 status_update 的权限,例如
我可以使用我刚刚获得的访问令牌发布到我喜欢的页面:
如果您想以网页管理员身份发帖,则需要 manage_pages和status_update 权限,例如
干杯
答案 1 :(得分:3)
嗯,这似乎是我们大多数人在尝试在社交网络中进行活动时常犯的错误。在尝试建立开放图表操作之前,您需要在初始授权请求中设置权限。默认情况下,您只能获得对其基本信息的“只读”访问权限。 在认证时,设置权限是Facebook和LinkedIn API的必备条件。
请参阅Facebook open graph permissions中的public_actions
部分,并在授权码中进行相关更改,以解决问题。
答案 2 :(得分:3)
status_update
不再使用了。要在网页上发布,我必须同时使用manage_pages
和publish_pages
。
答案 3 :(得分:1)
我发现获得有效令牌的最佳方法是检查权限是通过Graph API Explorer但是Facebook的文档广泛并不总是最容易理解。
在资源管理器中,您必须同时查看: