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

ban*_*sto 3 api facebook access-token

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

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

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

tor*_*man 6

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

首先,不是用户必须要求扩展访问令牌,而是你.您需要扩展自己用户的访问令牌.您的用户访问令牌可以在https://developers.facebook.com/tools/accesstoken/下找到,名称为'user token'.

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

GET /oauth/access_token?  
  grant_type=fb_exchange_token&           
  client_id={app-id}&
  client_secret={app-secret}&
  fb_exchange_token={short-lived-token}
Run Code Online (Sandbox Code Playgroud)

您在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
Run Code Online (Sandbox Code Playgroud)

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

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