如何获得永久访问令牌以发布到我拥有的Facebook页面?

时间:2016-05-16 19:15:13

标签: facebook facebook-graph-api

我是Facebook页面的管理员。我正在构建一个网络应用程序,在某些情况下,它将在Facebook上作为该页面发布。

对于大多数API,我只会获得一个API密钥,并在从我的应用程序连接到API时提供。但Facebook期望访问令牌而不是API密钥。 (具体来说,在这种情况下,它需要一个"页面访问令牌"。)

我正在尝试弄清楚如何获得尽可能永久的网页访问令牌。

在跳过一堆深奥的,未记录的箍(见herehere)以获得一个不会过期的令牌之后,我有了这个工作。当我通过Facebook's Access Token Debugger运行令牌时," Expires"字段读取"从不"。一切都很好。

但是,第二天,我的令牌无论如何都变得无效了。 Access Token Debugger和我应用程序调用Facebook的PHP SDK都开始返回此错误:

  

验证访问令牌时出错:会话与当前存储的会话不匹配。这可能是因为用户自创建会话以来已更改密码,或者Facebook出于安全原因更改了会话。

似乎令牌可能对a variety of reasons无效(但这篇文章已有五年了,所以谁知道 - Facebook每两周更改一次)。我没有更改密码。 (不过我可能已经退出了Facebook。)Facebook没有提供有关此特定令牌可能无效的具体信息。

我还看到了一些名为offline_access的权限的引用,但是Facebook seems to have removed this

我想我的问题有两个:

  1. 一般来说,我从服务器调用Facebook API时发现Facebook令牌身份验证非常脆弱。令牌系统似乎主要设计为允许其他用户授予(或撤销)对我的应用的各种帐户访问权限。但这不是我正在做的事情 - 我试图获取一个让发布到拥有的网页的令牌。对于这种情况,Facebook积极的代币无效成为一种严重的责任。如果我的访问令牌(以及我的Facebook集成)随时可能随机停止工作,我无法启动我的应用程序,要求我生成新令牌并更新应用程序。 这似乎很荒谬。是否有替代方法向Facebook进行身份验证?

  2. 如果页面访问令牌实际上是向Facebook验证我的应用程序以便发布为我的页面的最佳方式:我如何确保我的令牌不会自发地成为无效

  3. 我讨厌为Facebook开发:/感谢您提供的任何见解。

1 个答案:

答案 0 :(得分:2)

扩展页面标记永远有效。如果您更改密码或更改应用程序的App Secret,它们只会失效。真的没有魔法,检查令牌是否仍然有效显然不是一个坏主意,但这取决于你。例如,当使用令牌发生错误时,您可以向自己发送自动电子邮件,以便您可以刷新它。但如果您更改密码,它确实会发生。

链接: