我正在尝试更新我的代码以使用FB Graph 3.0。
登录流程正常,我请求我的权限,用户授予他们。后来使用PHP SDK的PHP代码意味着发布到用户的时间轴。
$r = $this->facebook->get('/me/permissions');
$result = $this->facebook->post('/me/feed/', $fbpost);
如果我检查$r
,我可以看到我有所需的权限:
manage_pages: granted
publish_pages: granted
public profile: granted
pages_show_list: granted
然而,当它发出实际请求时,它会失败并出现错误:(#200) Requires either publish_actions permission, or manage_pages and publish_pages as an admin with sufficient administrative permission
当我尝试将publish_actions
grant添加到我的登录名(使用javascript库)时,我收到一个错误,它是无效的:Invalid Scopes: publish_actions.
尽管FB自己的文档在几个示例中显示了这个确切的范围。
谁能指出我做错了什么?
编辑:我不是所有关心publish_actions
范围已经改变,但我明白这可能是一个新的变化,不是在文档中 - 但我确实有manage_pages
和publish_pages
权限,但我仍然不能发布到我的时间轴,错误代码似乎表示没有设置这些权限。
如FB v3.0 API /me/feed endpoint documentation中所述,您需要user_posts
权限(未在您的授权权限中列出)才能在此端点上进行读取和发布。 Publish_x权限仅与页面和组相关,而非与个人Feed相关。
如果没有评论提醒,请查看FB应用程序的主板,最近的立法变更(GDPR ...)和Facebook问题(Cambridge Analytica等...)已经在API中进行了很多更改。
我不是FB API专家,但Twitter最近删除了自动发布到FB的功能 - 我的假设是在最新的FB图形API中不再可能自动发布到用户的时间轴。至少,与第三方开发人员可以期待非技术客户处理相比,它需要更多的跳跃。
https://help.twitter.com/en/managing-your-account/link-twitter-to-facebook