【问题标题】:Get facebook page access token to automatically publish to facebook page wall获取 facebook 页面访问令牌以自动发布到 facebook 页面墙
【发布时间】:2012-08-03 10:44:10
【问题描述】:

需要通过 PHP 将故事从网站发布到指定的 facebook 页面。不推荐使用离线访问权限,所以我基本上需要获取用户访问令牌,以便我可以获得页面访问令牌(作为页面发布),但是这些令牌过期并且扩展它们需要直接要求用户在弹出窗口中扩展权限(正确如果我错了我)。

所以也许有一种方法可以在后台登录,这样如果用户访问令牌过期,我登录用户并获取新的访问令牌?或者也许有办法获得永无止境的用户访问令牌并通过它获得永无止境的页面访问令牌?

不明白为什么这么难做,特别是如果我拥有我愿意发布到的网站和 Facebook 页面。

【问题讨论】:

    标签: facebook api access-token


    【解决方案1】:

    我刚刚发现了如何做到这一点,并在 stackoverflow 中搜索了这个问题,以便我可以回答:)

    首先,您需要请求扩展访问令牌的不是用户,而是您。您需要扩展您自己用户的访问令牌。您的用户的访问令牌可以在 https://developers.facebook.com/tools/accesstoken/ 的名称“用户令牌”下找到。

    下一步是通过发出此请求来延长此令牌的寿命:

    GET /oauth/access_token?  
      grant_type=fb_exchange_token&           
      client_id={app-id}&
      client_secret={app-secret}&
      fb_exchange_token={short-lived-token}
    

    {app-id}{app-secret} 是您在 developers.facebook.com 中应用程序仪表板的信息,{short-lived-token} 是您刚刚找到的“用户令牌”。

    您不必通过php SDK进行此调用,您可以像请求页面graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id={app-id}&client_secret={app-secret}&fb_exchange_token={short-lived-token}一样使用您的浏览器(注意:它以access_token={access-token}&expires={seconds}的形式返回值。所以不要复制整个东西。)

    现在,当您使用此扩展用户令牌获取页面访问令牌时,它将是不朽的。使用新令牌进行此 API 调用(注意:在进行调用之前,您必须授予权限“manage_pages”以进行此调用,并授予“publish_actions”权限以稍后发布到页面。最简单的方法是点击https://developers.facebook.com/tools/explorer/ 处的“获取访问令牌”按钮您需要授予的权限位于“扩展权限”选项卡下。):

    GET /me/accounts
    

    您将获得页面列表及其部分信息以及每个页面的访问令牌。

    这些访问令牌不会过期。您可以在https://developers.facebook.com/tools/debug/查看

    【讨论】:

    • 这拯救了我的一天。非常感谢!你的赏金正在路上
    【解决方案2】:

    您需要为您的页面创建一个连接器应用程序,然后为您的应用程序获取一个永久访问令牌。您可以在 Facebook 文档的 Authenticating as an App 页面上查看此过程的详细信息。

    【讨论】:

    • 真的可以使用应用访问令牌发布内容吗?在我看来,这种令牌只允许检索信息。如果我在调试器中测试应用程序访问令牌,则只有应用程序标识;如果我使用适当的权限测试用户 access_token,那么我也会看到权限。
    • 我认为这不会起作用,因为应用程序 access_token 没有为帐户连接授予适当的权限。您需要用户 access_token 来检索页面的 access_token
    • @TommyBs 没有重定向怎么办?我有 user、pass、appId、appSecret - 我可以使用一些 API 调用来获取新用户 access_token 吗?
    猜你喜欢
    • 1970-01-01
    • 2012-02-13
    • 2011-08-11
    • 1970-01-01
    • 1970-01-01
    • 2012-02-22
    • 2014-10-08
    • 2018-02-16
    • 2012-01-04
    相关资源
    最近更新 更多