长效FB访问令牌服务器拉FB页面信息(Long-lasting FB access-token fo

2019-06-17 21:51发布

我知道,有关于Facebook的访问令牌和它们所造成的悲痛很多问题,但尽管多次实验和阅读许多令人沮丧的模糊的博客文章(FB和其他),我仍然在努力得到一个明确的答案,以我的需求。 让我简明扼要地打破我的进程迄今:

  • 我创建了一个网站,服务器端,需要拉职位/状态从一个单一的Facebook页面
  • 我认为Facebook主页的管理员
  • 我创建Facebook应用
  • 使用Facebook的图形API资源管理器 ,我已经产生了短暂的键,连接到我的应用程序和我的帐户,授予权限到我的帐户,查看访问令牌我的网页
  • 我已经将我短暂的键从一个长寿命密钥(60天)ALA方案4 本

这里的地方我卡住了。 我60天重点工作正常,我的服务器拉从网页所需要的信息,但据我所知,没有办法以编程方式延长该60天关键。 我也不知道的方式来产生,而无需手动去Facebook的图形API浏览器并创建一个新的短命的关键。

既然是我的服务器发出请求到Facebook的API,而不是基于用户的系统(在这里我可以很容易地要求用户重新授权Facebook的应用程序),这创造了一个非常笨重的系统。 由于Facebook的弃用offline_access ,真的没有到有,从我自己的网页在我的服务器上拉资讯永久的方式? 我真的要手工创建一个新的密钥和手动更新我的服务器与它每60天?

或者是有什么我失踪?

更新:

先前发现这里的一步一步的指导,已迁移下来变成自己的答案 。

Answer 1:

这些都是以前在这个问题的步骤-他们已经迁移到这个答案。

已经发现,有可能产生一个Facebook页面访问令牌不会过期(从@Igy帮助),这里是一个清晰,一步一步quide众人寻觅到相同的:

  1. 请确保您的FB页面的要拉信息从管理
  2. 创建一个FB应用(应与在页面管理员相同的用户帐户)
  3. 头向Facebook的图形API浏览器
  4. 在右上角选择您从“应用程序”创建的FB应用程序下拉列表
  5. 点击“获取访问令牌”
  6. 请确保您添加manage_pages权限
  7. 转换此短暂的访问令牌为长寿命的一个通过使该图形API调用: 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>
  8. 抓住新的长期访问令牌返回
  9. 制作一个图形API调用使用新的长期访问令牌看到您的帐户: https://graph.facebook.com/me/accounts?access_token=<your long-lived access token>
  10. access_token你会从拉拉信息页面
  11. 皮棉令牌看到它被设置为Expires: Never

这应该这样做。 你现在应该有一个Facebook页面访问令牌不会过期,除非:

  • 你改变你的Facebook帐户的密码
  • 你失去目标页面管理员访问权限
  • 您删除或取消授权您的Facebook应用

所有这些都将导致访问令牌变得无效。

如果您收到(#100) Tried accessing nonexisting field (accounts) on node type (Page) ,到访问令牌调试器 ,复制的价值User ID ,并用它来替换URL中的“我”的一部分,步骤9。



Answer 2:

这是覆盖在脱机访问弃用文件

使用60天令牌的页面管理员检索页面访问令牌(通过/PAGE_ID?fields=access_token/me/accounts ) -页面访问令牌不会有到期时间



Answer 3:

非常感谢@redhotvengeance为一步一步的指导。

过了一段时间,现在显然是Facebook的文档中描述:

https://developers.facebook.com/docs/facebook-login/access-tokens/expiration-and-extension

扩展页面访问令牌

当它们与manage_pages许可认证的应用程序可以检索页管理员的用户页面访问令牌。 如果用于检索此页面访问令牌的用户访问令牌是短暂的,页面访问令牌也将是短暂的。

为了得到长寿命的页面访问令牌,交换用户访问令牌的长寿命之一,如上,然后请求页面访问令牌。 结果页面访问令牌不会有任何的到期时间。



Answer 4:

您也可以从Facebook上的应用程序仪表板复制过去。 步骤:

  1. 转到https://developers.facebook.com

  2. 在页面的右上角选择您的应用程序(的什么样子PIC)

  3. 从左侧的选项,点击使者(它会去自动设置) (PIC的是什么样子)
  4. 转到页中的“令牌生成”一节。 选择要生成令牌的页面。 (什么是部分类似于图)
  5. 复制和过去你的网页令牌在任何你需要它。

请记住,虽然在理论上你的令牌不会过期,它直接关系到什么都Facebook帐户的登录。 所以说,您更改密码,或者您从您的帐户和应用程序之间删除权限,那么你的令牌将不再有效了。



文章来源: Long-lasting FB access-token for server to pull FB page info