2012-04-20 78 views
2

因爲我們知道Offline_access已被棄用,現在有人可以告訴我,如果沒有這種權限,我們如何才能獲得長期存取的令牌?如何擴展訪問令牌有效性?

+0

檢查:http://stackoverflow.com/a/9712663/122978 – greut 2012-04-20 13:26:12

回答

1

您可以通過將以下函數添加到base_facebook.php來擴展訪問令牌。

//擴展令牌值的函數。

公共職能getExtendedAccessToken(){

try { 

    $access_token_response = 
     $this->_oauthRequest(
      $this->getUrl('graph', '/oauth/access_token'), 
      $params = array( 'client_id' => $this->getAppId(), 
           'client_secret' => $this->getApiSecret(), 
           'grant_type'=>'fb_exchange_token', 
           'fb_exchange_token'=>$this->getAccessToken(), 
         )); 

} catch (FacebookApiException $e) { 

    return false; 
} 

if (empty($access_token_response)) { 
    return false; 
} 

$response_params = array(); 
parse_str($access_token_response, $response_params); 
if (!isset($response_params['access_token'])) { 
    return false; 
} 

return $response_params['access_token']; 

}