有效期较长的 Facebook 访问令牌

Posted

技术标签:

【中文标题】有效期较长的 Facebook 访问令牌【英文标题】:Facebook access Token with longer expiration 【发布时间】:2012-02-20 07:26:33 【问题描述】:

我正在尝试关注this tutorial 获取具有更长过期时间的令牌。 Facebook 连接是在客户端(Js sdk)上完成的。我采取的步骤是:

在我的应用设置页面上启用了“弃用 offline_access” 正常检索 access_token 卷曲“https://graph.facebook.com/oauth/access_token? client_id=APP_ID& client_secret=APP_SECRET& grant_type=fb_exchange_token& fb_exchange_token=access_token"

这总是返回相同的完全相同的访问令牌,过期 2 小时,它不应该返回一个有效期为 60 天的令牌(与 access_token 相同或不同)吗?

谢谢

【问题讨论】:

【参考方案1】:

您可以使用 HTTP DELETE 以编程方式将 2 小时令牌设置为已过期 me/permissions,这将强制用户重新验证您的应用。这应该会给你一个 60 天的令牌。

【讨论】:

【参考方案2】:

截至目前,根据我的经验,在启用“弃用离线访问”设置后添加应用程序的新用户似乎会返回 60 天令牌。在设置“不推荐使用的offline_access”设置之前,老用户似乎停留在 2 小时的生命周期。

我还有一些测试似乎表明,除了“不推荐使用的offline_access”设置之外,还需要设置“增强的身份验证对话框”设置才能获得长期存在的令牌。

【讨论】:

太棒了!非常感谢@Greg_Whalin,“增强的身份验证对话框”确实是必要的 同样使用客户端(桌面)身份验证,同时启用“弃用离线访问”和“增强的身份验证对话框”。在整个身份验证过程之后,我获得了有效期为 60 天的访问令牌。但是我无法通过调用提到的端点来延长有效期。它总是返回具有相同有效期 我有这两个设置,我得到了一个 60 天的令牌。但在那之后我从我的应用设置中删除了该应用,现在我只得到了 2 小时的令牌 :( 有什么想法吗? 甜蜜。对我来说,从用户那里删除应用程序并再次添加它似乎可以解决问题。

以上是关于有效期较长的 Facebook 访问令牌的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法检查 Facebook 访问令牌是不是仍然有效?

注销后facebook访问令牌仍然有效

Facebook - 永久用户访问令牌

Facebook - 如何获得永久用户访问令牌[重复]

如何验证 Facebook 访问令牌?

自offline_access弃用以来如何延长访问令牌的有效性