持久的FB访问
我知道关于Facebook访问令牌以及他们造成的悲伤有很多问题,但尽管进行了大量实验并阅读了许多令人沮丧的模糊博客文章(FB和其他文章),但我仍然努力得到明确的答案以满足我的需求。 让我简单地分解我的过程到目前为止:
这就是我被卡住的地方。 我的60天密钥适用于我的服务器,以便从该页面获取所需的信息,但据我所知,无法以编程方式扩展该60天密钥。 我也不知道如何生成新的短期密钥,而无需手动转到Facebook Graph API Explorer并创建一个。
由于这是我的服务器向Facebook API发出请求,而不是基于用户的系统(我可以轻松请求用户再次授权Facebook应用),因此会创建一个非常笨重的系统。 由于Facebook弃用offline_access
,真的没有永久性的方法让我的服务器从我自己的页面中获取信息吗? 我是否真的必须手动创建一个新密钥,并每60天手动更新一次服务器?
还是有我失踪的东西?
更新:
先前在这里找到的分步指南已经被转化为它自己的答案。
这些是以前在问题中的步骤 - 他们已经被迁移到这个答案。
发现可以生成一个不会过期的Facebook页面访问令牌(在@Igy的帮助下),对于所有寻求相同内容的人来说,下面是一个清晰的步骤问题:
manage_pages
权限 https://graph.facebook.com/oauth/access_token?client_id=<your FB App ID >&client_secret=<your FB App secret>&grant_type=fb_exchange_token&fb_exchange_token=<your short-lived access token>
https://graph.facebook.com/me/accounts?access_token=<your long-lived access token>
: https://graph.facebook.com/me/accounts?access_token=<your long-lived access token>
access_token
Expires: Never
! 这应该做到这一点。 您现在应该拥有一个不会过期的Facebook页面访问令牌,除非:
任何这些都会导致访问令牌失效。
如果您正在获取(#100) Tried accessing nonexisting field (accounts) on node type (Page)
,请转到Access令牌调试器,复制User ID
的值,并用它来替换URL中的“我”部分步骤9。
这包括在Offline Access弃用文档中
为页面管理员使用60天令牌来检索页面访问令牌(通过/PAGE_ID?fields=access_token
或/me/accounts
) - 页面访问令牌不会有过期时间
非常感谢@redhotvengeance的分步指南。
过了一段时间,现在Facebook文档中已经有清楚的描述:
https://developers.facebook.com/docs/facebook-login/access-tokens/expiration-and-extension
扩展页面访问令牌
使用manage_pages权限进行身份验证时,应用可以从Page管理员用户检索页面访问令牌。 如果用于检索该页面访问令牌的用户访问令牌是短暂的,则页面访问令牌也将是短暂的。
要获得更长寿命的页面访问令牌,请将用户访问令牌换成长寿命的访问令牌(如上所述),然后请求页面访问令牌。 生成的页面访问令牌不会有任何到期时间。
链接地址: http://www.djcxy.com/p/70379.html上一篇: lasting FB access