ホームページ >バックエンド開発 >PHPチュートリアル >Offline_access の廃止後に長期有効な Facebook アクセス トークンを取得するにはどうすればよいですか?

Offline_access の廃止後に長期有効な Facebook アクセス トークンを取得するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-29 07:02:14506ブラウズ

How to Obtain Long-Lived Facebook Access Tokens After Offline_access Deprecation?

Offline_access の非推奨にもかかわらずアクセス トークンの有効性を延長する方法

問題:

Facebook の非推奨offline_access 権限により、取得が妨げられています。有効期間の長いアクセス トークン。ドキュメントでは、サーバー側の OAuth トークンが長期間存続すると示されていますが、実際はそうではありません。

回答:

編集 (2012 年 8 月 14 日) ):

公式 Facebook PHP SDK にはが更新され、改訂された setExtendedAccessToken 関数が導入されました。潜在的なセッション重複の問題を軽減するには、関数の実行時に現在のセッションを終了する必要があります。さらに、新しいアクセス トークンを内部に保存し、パブリックの getAccessToken 関数を介して取得できるようにします。 Facebook PHP SDK GitHub ページから最新の SDK を取得します。

元の回答:

60 へのアクセスを許可する新しいパブリック関数がbase_facebook.php に追加されました。 -day 更新可能なアクセス トークン。通常のアクセス トークン受信後にこの関数を実装するだけで十分な場合があります。さらに、開発者アプリの詳細設定で「deprecate offline_access」を有効にすることが必要であると考えられます。

Facebook クラス内のbase_facebook.phpに次のコードを挿入し、関数を呼び出します:

public function getExtendedAccessToken(){

    try {
        // need to circumvent json_decode by calling _oauthRequest
          // directly, since response isn't JSON format.
        $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) {
      // most likely that user very recently revoked authorization.
      // In any event, we don't have an access token, so say so.
      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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。