脸书访问令牌的到期时间


Expiry Time of facebook access token

如何找到访问令牌将在 php 中过期的时间?

您最初在signed_request中从 Facebook 收到的令牌将在 2 小时或 7200000 毫秒或 7200 秒后过期。如果使用以下请求扩展令牌,你将在转换为 60 天的响应中收到新的过期时间 5184000 秒。我通常做的是将此时间以毫秒为单位存储,添加到自纪元以来的当前 Unix 时间(以毫秒为单位),并在需要时不断检查该时间。

扩展令牌:

https://graph.facebook.com/oauth/access_token?             
    client_id=APP_ID&
    client_secret=APP_SECRET&
    grant_type=fb_exchange_token&
    fb_exchange_token=EXISTING_ACCESS_TOKEN 

例如,我会请求客户端的来源信息并进行以下检查。

if (response.user.sources.FACEBOOK.expires > new Date().getTime() ) {
    //do something
}

不确定为什么要尝试确定这一点?如果用户随时取消对应用的授权或更改其密码,则访问令牌可能会过期。

阅读此内容脸书 - 操作方法:处理过期的访问令牌

此外,我相信Facebook正在导致所有应用程序获得60天的代币。我可能是错的,但是如果您启用脱机访问令牌的弃用,则应授予您的ap60天令牌。如果用户重新访问您的 AP,该令牌将恢复到 60 天。