【问题标题】:Post from facebook app to (fan) page - application has not enough permissions从 facebook 应用程序发布到(粉丝)页面 - 应用程序没有足够的权限
【发布时间】:2012-04-04 23:12:07
【问题描述】:

我有一个 facebook 应用程序和一个 facebook(粉丝)页面。 我想从作为 cron 作业定期运行的 php 脚本发布到页面,并作为应用程序(如果可能)进行身份验证。

我正在使用官方的 facebook php sdk。

我正在尝试使用$facebook->api($pageId."/feed", 'POST', $post); 发布到页面,其中$post 包含所需的messagelink 键,并且还应该包含access_token

为了获取访问令牌,我尝试使用$facebook->getApplicationAccessToken(),并向https://graph.facebook.com/oauth/access_token 发出 curl 请求(结果相同)。

我得到的回应是: OAuthException: (#200): The user hasn't authorized the application to perform this action

我能够发布到页面,但使用来自https://graph.facebook.com/me/accounts 的 access_token,这要求我首先提供用户的访问令牌。用户和他的页面的令牌似乎过期了,最多在 60 天后,所以这个解决方案不好。

我尝试按照此处Authorizing a Facebook Fan Page for Status Updates 的说明授予权限,但我仍然收到之前的错误。

欢迎任何关于如何在不涉及用户登录的 Facebook 页面上发帖的解决方案!

【问题讨论】:

    标签: php facebook facebook-graph-api oauth


    【解决方案1】:

    如果没有登录用户(至少一次获得access_token,以后可以是extended)并请求适当的权限,则无法使用Application access_token在页面上发帖。

    要以用户身份发布到页面,您需要用户授予的publish_stream 权限。

    要作为页面发布到页面,您需要用户授予的 publish_streammanage_pages 权限,并且可以从 useraccounts 连接中检索到 Page access_token

    【讨论】:

    • 所以,澄清一下,我不能在没有用户干预的情况下发布到页面?我以前认为这是可能的。
    【解决方案2】:

    您可以通过使用Graph API Explorer 的应用程序获取发布到Facebook 页面所需的access_token。在资源管理器中:

    1. 选择您要代表其执行操作(发布、点赞等)的应用程序。
    2. 在 url 字段中输入页面的 url:https://graph.facebook.com/page'。
    3. 点击“Get Access Token”获取。
    4. 您将看到一个对话框;选择要授予此应用程序的权限。至少 publish_stream、offline_access 和 manage_pages(用于发布到页面墙帖子)
    5. 您将获得一个可用于您的应用程序的新访问令牌。发布到您的页面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-25
      • 2011-08-08
      • 1970-01-01
      • 2014-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多