12

有AY方式來獲得訪問令牌的到期日期,我需要這個,所以我可以刷新我的會議,我也想這樣,所以我能避免查找在Facebook上的用戶當通過PHP cURL獲取數據時。如何提取Facebook的訪問令牌過期信息

也該鏈接 https://developers.facebook.com/tools/access_token/ 如果我點擊我的自定義應用程序的一個DEBUG按鈕,我可以看到這個信息(例如)

App ID: 23131XX000: My Custom App 
User ID: XX99858XX : Mario Bro 
Issued: XX11111XX : 2:00 pm Feb 10 2012 
Expires: XX11111XX : 3:00 pm Feb 10 2012 
Valid: True 
Origin: Unknown 
Scopes: email user_likes 

,並顯示來自該應用程序的到期日期。有沒有一種方法可以在PHP SDK或圖形URL命令中獲取這些信息?

+0

當你得到令牌時它會告訴你它何時到期。所以你可以從一開始就得到它,保存並計算在任何給定時刻它仍然可用。 – Andrew 2012-02-10 21:39:46

+0

嗨然後爲答覆,我怎樣才能使用Facebook PHP SDK解壓縮?對不起,如果我不明白你的觀點,但我不確定在哪裏看,開發人員文檔中是否有可能的鏈接,以便我可以研究該部分?或可能的解釋這部分的鏈接? – zearth 2012-02-10 21:53:20

回答

3

更新:
代碼波紋管不再起作用(見bug報告PHP SDK getSignedRequest does not include "expires" field),有沒有辦法讓用PHP-SDK的數據)。

您可以使用Debug tool當你access_token到期手動搜尋。

您可以從 signed_request得到 access_token到期時間:

$facebook = new Facebook(array(
    'appId'=>APP_ID, 
    'secret'=>APP_SECRET 
)); 
$signedRequest = $facebook->getSignedRequest(); 
$expiresDate = date('c', $signedRequest['expires']); 
print_r($expiresDate); 

+0

這不適合我。沒有「過期」鍵。 – phirschybar 2012-03-31 18:49:20

+0

@phirschybar,示例代碼中存在錯誤。現在嘗試一下,如果你還沒有'expires',可能根本沒有'signed_request',那麼試着在這種情況下'print_r($ signedRequest)'來解決它。 – 2012-03-31 18:56:38

+0

我有同樣的問題,'過期'字段丟失。 – Roni 2012-07-11 09:13:02

2

有一個圖形API端點(可能這個問題後已被釋放),讓你的過期時間和其他有用的信息。有關詳細信息,請參閱Debugging Access Tokens and Handling Errors文檔。

+0

雖然,所有的應用程序應該支持令牌在任何時候被無效(用戶未經授權的你等),並且不應該依賴使用反向信道來獲取這些信息。 – 2012-10-25 07:36:51

+3

精確鏈路如下:?https://developers.facebook.com/docs/facebook-login/access-tokens#debug和API端點是'''GET/debug_token的input_token = {輸入令牌}&=的access_token {訪問令牌}''' – 2014-04-22 15:38:25