問題:
在Facebook 的身份驗證流程中棄用Offline_access 權限,在沒有該許可的情況下檢索長期存取權杖已成為一項挑戰。儘管 Facebook 的文檔指出伺服器端 OAuth 令牌將長期有效,但事實並非如此。
解決方案:
Facebook 已更新 PHP SDK 以包含一個方法用於延長存取權杖的有效性。
更新了 SDK方法:
base_facebook.php 中新增了一個名為 setExtendedAccessToken 的公用函數。此函數傳回一個有效期為 60 天的新存取權杖。
用法:
收到正常存取權杖後呼叫此函數。您可以使用 getAccessToken 公用函數來存取新令牌。
擴充存取權杖函數:
public function getExtendedAccessToken(){ try { $access_token_response = $this->_oauthRequest( $this->getUrl('graph', '/oauth/access_token'), array( 'client_id' => $this->getAppId(), 'client_secret' => $this->getAppSecret(), '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']; }
注意:
以上是Offline_Access 棄用後如何延長 Facebook 存取權杖的有效性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!