2012-07-05 179 views
2

如何查找访问令牌将在什么时间到达phpFacebook访问令牌的到期时间

+0

的[可能重复是否存在的一个API相当于Facebook访问令牌linter /调试器?](http://stackoverflow.com/questions/9236445/is-there-an-api-equivalent-of-the-facebook-access-token-linter-debugger) –

回答

4

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

Extending the token

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 
} 
+0

精彩,提示。 .. – 2014-03-02 01:42:35

0

不知道为什么你想试图确定? 如果用户在任何时候取消授权您的应用或更改其密码,访问令牌可能会过期。

阅读本 Facebook - How-To: Handle expired access tokens

而且,我相信Facebook是通向被授予60天标记所有的应用程序。 我可能是错的,但是如果您启用了脱机访问令牌的弃用权,那么您的ap应该被授予60天的令牌。如果您的用户重新访问您的ap,该令牌会重新计算为60天。