获取Facebook页面访问令牌以自动发布到Facebook页面墙

时间:2012-08-06 12:52:06

标签: facebook api access-token

需要通过PHP将故事从网站发布到指定的Facebook页面。不推荐使用脱机访问权限,因此我基本上需要获取用户访问令牌以便我可以获取页面访问令牌(以页面形式发布),但这些令牌过期并扩展它们需要让用户直接在弹出窗口中扩展权限(正确)我,如果我错了)。

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

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

2 个答案:

答案 0 :(得分: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}

其中{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/

查看

答案 1 :(得分:0)

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