首頁 >後端開發 >php教程 >Offline_Access 棄用後如何延長 Facebook 存取權杖的有效性?

Offline_Access 棄用後如何延長 Facebook 存取權杖的有效性?

Patricia Arquette
Patricia Arquette原創
2024-11-26 06:33:10856瀏覽

How Can I Extend Facebook Access Token Validity After Offline_Access Deprecation?

在Offline_Access 棄用後擴展訪問令牌有效性

問題:

在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'];
}

注意:

  • 確保您已在進階應用程式中啟用「棄用離線存取」設定。
  • 呼叫 setExtendedAccessToken 取得擴充令牌。
  • 使用 getAccessToken 存取擴充令牌。

以上是Offline_Access 棄用後如何延長 Facebook 存取權杖的有效性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn