【发布时间】:2012-07-05 11:23:12
【问题描述】:
如何在 php 中找到访问令牌的到期时间?
【问题讨论】:
标签: php facebook facebook-graph-api facebook-access-token
如何在 php 中找到访问令牌的到期时间?
【问题讨论】:
标签: php facebook facebook-graph-api facebook-access-token
您最初在 signed_request 中从 Facebook 收到的令牌将在 2 小时或 7200000 毫秒或 7200 秒后过期。如果您使用以下请求扩展令牌,您将在响应中收到 5184000 秒的新过期时间,转换为 60 天。我通常做的是将这个时间(以毫秒为单位)存储到自纪元以来的当前 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 - How-To: Handle expired access tokens
此外,我相信 facebook 正在引领所有应用程序获得 60 天令牌。 我可能是错的,但如果您启用离线访问令牌的弃用,您的应用程序应该被授予 60 天令牌。如果您的用户重新访问您的应用程序,该令牌将恢复到 60 天。
【讨论】: