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

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

DDD
DDDオリジナル
2024-12-01 17:11:14352ブラウズ

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

Offline_access 廃止後の長期アクセス トークン

Facebook による offline_access 権限の廃止により、長期有効のアクセス トークンの取得が妨げられています。ドキュメントではサーバー側の OAuth トークンが拡張されると主張していますが、実際は異なります。

解決策

有効期間の長いアクセス トークンを取得するには、extendedAccessToken () を利用します。メソッド:

パブリック関数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'];

}

機能を確保するには、開発者アプリの詳細設定で「deprecate offline_access」を必ず有効にしてください。通常のアクセス トークンを受信した後にこのメソッドを呼び出して、60 日間の有効期限を持つ有効なトークンを取得します。

以上がOffline_access の廃止後に長期有効な Facebook アクセス トークンを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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