自动作为应用程序在Facebook页面墙上发布


Automatically post on Facebook page wall as app

我实际上正在为一个电子商务网站开发一些遗留的PHP代码,在这个网站上,经理可以在他们的商店facebook页面上自动共享一些产品。这已经不起作用了,即使在facebook API引用之后,我仍然有麻烦。遗留代码使用应用程序在墙上张贴

访问令牌
为了获得有效的访问令牌,我重定向到:

http://www.facebook.com/dialog/oauth?client_id=$FB_APP_ID&
redirect_uri=$APP_RETURN_URL&
scope=publish_actions,manage_pages

然后,我得到它返回的CODE,并请求get请求https://graph.facebook.com/oauth/access_token具有以下参数:

'client_id' => $FB_APP_ID,
'redirect_uri' => $APP_RETURN_URL,
'client_secret' => $FB_APP_SECRET,
'code' => $code (got from the above redirect)

然后我存储它返回的访问令牌(我没有得到错误消息和有效的access_token)

问题是,当我试图用post调用在墙上发帖时https://graph.facebook.com/$pageId/提要我收到以下错误消息:

(#283)需要扩展权限:manage_pages

我用于第一次重定向的作用域参数不足以获得manage_pages权限?

注意:我是用我的脸书用户账户做这件事的,他是脸书页面的编辑。也许它有助于

EDIT:这是访问令牌调试的输出:

应用程序ID
用户ID
用户上次通过API v2.x安装此应用程序
发布1452163781(21小时前)
到期1457347781(约2个月后)
有效True
源网站
作用域电子邮件,public_profile

我应该如何请求managepages范围?

您需要获得Facebook审查的权限,然后才能向普通用户(在应用程序中没有角色的用户)请求这些权限。

这在文档的多个地方都有明确提及,并进行了详细描述:https://developers.facebook.com/docs/facebook-login/permissions/review

此外,从API v2.3开始,您需要publish_pages权限(而不是publish_actions)才能将发布为页面。