【问题标题】:Post to a facebook page without "manage_pages" permission using php使用 php 在没有“manage_pages”权限的情况下发布到 Facebook 页面
【发布时间】:2014-05-28 09:31:18
【问题描述】:
我有一个包含博客文章的网站。我们需要将博客自动发布到 Facebook 页面。目前我可以发布到我的时间线。但我无法发布到 Facebook 页面。我在谷歌搜索过。许多代码说我们需要 manage_pages 权限。 * 我的应用程序,同一帐户中的 Facebook 页面。我已提交 manage_pages 以供批准。他们说您可以在没有 manage_page 权限的情况下发布到您的页面,因为您是应用程序和 Facebook 页面的管理员。但我总是收到 #200 错误。他们的详细回复是“您不需要请求这些权限,因为您的博客或 CMS 与您管理的应用程序集成。作为应用程序管理员,您已经可以访问这些权限并发布到您的时间轴或您管理的页面。您可以通过将其他用户添加为您的应用程序的开发人员来为他们提供访问权限。”正如他们解释的那样,我需要在没有 manage_pages 权限的情况下发布到 Facebook 页面的代码
【问题讨论】:
标签:
php
facebook
facebook-graph-api
facebook-php-sdk
【解决方案1】:
使用 Graph API Explorer 请求新的用户访问令牌(具有manage_pages 权限,最终与publish_pages 结合使用)。请务必使用您自己的应用之一,因为您希望将生成的(短期)访问令牌交换为长期存在的访问令牌:
从图形资源管理器的相应表单字段中复制新生成的用户访问令牌,打开一个新的浏览器选项卡并粘贴如下所示的 URL
https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id={your_app_id}&client_secret={your_app_secret}&fb_exchange_token={user_token_from_last_step}
这将创建一个长期存在的用户访问令牌。现在,将这个新的访问令牌从浏览器选项卡的内容复制到图形资源管理器(复制到访问令牌的相应表单字段中)。
现在,您可以使用此访问令牌致电/me/accounts,您将收到您管理的页面列表。从列表中选择一个页面访问令牌,并通过
验证生成的令牌
https://developers.facebook.com/tools/debug/accesstoken?q={generated_page_token}