2012-07-05 108 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天。