2012-02-25 68 views
0

我的Facebook PHP SDK應用程序登錄到Facebook並收到access_token。如何使用Facebook PHP SDK獲取access_token的「expires」參數的值?

如何在以後使用PHP SDK獲取「expires」參數的值?

+1

具有訪問令牌的響應需要另一個名爲* expires *的參數。你可以發佈你正在使用的代碼嗎? – 2012-02-25 20:38:53

+0

Nitzan Tomer, 我想在晚些時候獲得「expires」的價值,而不是在登錄時。例如,在星期一,我使用Facebook PHP SDK登錄Facebook。在週二,我想使用Facebook PHP SDK獲取「expires」的價值。 <?php require_once(「php-sdk/src/facebook.php」); $ facebook = new Facebook(array( 'appId'=>'...', 'secret'=>'...', )); $ access_token = $ facebook-> getAccessToken(); echo $ access_token; ?> – property2616 2012-02-26 15:25:42

回答

2

Facebook的API提供如所陳述在這裏在其響應中的access_token沿期滿參數:https://developers.facebook.com/docs/authentication/

除了訪問令牌(所述的access_token參數),所述響應包含的秒數,直到令牌到期(expires參數)。一旦令牌到期,您將需要重新運行上述步驟以生成新的代碼和access_token,但如果用戶已經授權了您的應用,則不會再提示他們這樣做。如果您的應用程序需要具有無限到期時間的訪問令牌(可能在用戶未使用應用程序後代表用戶執行操作),則可以請求offline_access權限。

enter image description here

如果你想獲得剩餘的訪問令牌的時候,我不相信,Facebook甚至有通過API的方法爲你做到這一點。只需申請一個新的訪問令牌或請求上述參考文獻中記錄的「offline_access」令牌更容易。

+0

如何使用Facebook PHP SDK請求新的訪問令牌? – property2616 2012-02-26 15:51:39

+1

offline_access is deprecated https://developers.facebook.com/docs/offline-access-deprecation/ – property2616 2012-02-26 15:55:24

2

檢索與Facebook的PHP SDK中的「過期」的參數,你需要幾行添加到SDK裏面提供的base_facebook.php腳本:

//base_facebook.php 
//At Line 728 

if (!isset($response_params['access_token'])) { 
    return false; 
} 

//Add these two lines here 

$_SESSION['token_created_time'] = time(); 
$_SESSION['token_expires'] = $response_params['expires']; 

return $response_params['access_token']; 

一旦你與你的應用程序連接,您可以將您的令牌到期之前與以下訪問您的「到期」參數和剩餘時間:

//Your "expires" parameter : 
echo $_SESSION['token_expires']; 

//The remaining time before your token expires : 
echo $_SESSION['token_expires'] + $_SESSION['token_created_time'] - time(); 

我希望這會有所幫助。

相關問題