3

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

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

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

4

2 回答 2

6

我刚刚发现了如何做到这一点并在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}

您在developers.facebook.com 中的应用程序仪表板上的信息在哪里{app-id},是您刚刚找到的“用户令牌”。{app-secret}{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/

于 2014-10-10T17:16:08.213 回答
0

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

于 2012-08-06T12:57:02.000 回答