【问题标题】:How to get publish_stream permissions for app to post in the wall of a Facebook Page如何获取应用程序的 publish_stream 权限以在 Facebook 页面的墙上发布
【发布时间】:2012-09-10 23:49:00
【问题描述】:

我创建了一个从服务器端连接到 Facebook 的应用程序。我打开了一个页面(社区页面),以便应用程序使用 GRAPH API 在此页面的墙上发帖。 当我尝试通过 PAGEID/feed 在页面中发帖时,我收到了回复:

{"error":{"message":"(#200) The user hasn't authorized the application to perform this action","type":"OAuthException","code":200}}

我在 Facebook 应用程序(如照片、事件或便笺)的页面上看到它显示“扩展权限”,但是当我将应用程序添加为选项卡时不会出现该选项。

我很沮丧!

提前致谢!

【问题讨论】:

  • 您阅读过AuthenticationPermission 文档吗?
  • 是的,Igy,但我不尝试以编程方式添加选项卡。我只是使用 //www.facebook.com/dialog/pagetab?app_id=xxxxx&redirect_uri=xxxxxx 添加应用程序...在此之后.. Facebook 在该页面中将应用程序添加为选项卡,但我无法获得 publish_stream 权限...
  • 添加应用程序有一个选项卡与您将更新发布到该页面的时间线的能力无关 - 您是否从页面管理员那里获得了正确的权限?
  • mmm... 你的意思是我需要为页面管理员获取一个 access_token 才能发布更新,而不是应用程序?目前我获得了应用程序的权限,接下来我尝试进行更新..

标签: php facebook-graph-api facebook-apps


【解决方案1】:

您需要页面管理员授予您的应用 Permission 访问其页面的权限。

Authentication 文档中有一个完整的部分专门用于此:Authenticating as a Page

一旦您获得用户的manage_pages 权限,调用/me/accounts 将返回用户管理的页面列表以及可用于代表页面进行API 调用的access_token

【讨论】:

  • 最后,我必须寻找另一个解决方案.. :( 当我通过应用程序登录并在 cron 进程中重用它时,响应将是保存我自己的 auth_token(我是管理员)为了能够以编程方式发布到页面。Facebook 需要一个用户令牌,获取该令牌的唯一方法是交互式登录。对于其他对相同问题感兴趣的人,有一个 Offline Access Guide 解释了所有关于长期存在的身份验证令牌。感谢@Igy。
猜你喜欢
  • 2011-12-05
  • 2012-09-20
  • 2012-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-05
  • 1970-01-01
  • 2012-06-13
相关资源
最近更新 更多