ホームページ > バックエンド開発 > PHPチュートリアル > アクセストークンとユーザーデータの欠落に関するFacebook Graph API 2.3の問題を修正する方法?

アクセストークンとユーザーデータの欠落に関するFacebook Graph API 2.3の問題を修正する方法?

DDD
リリース: 2024-12-26 07:55:09
オリジナル
143 人が閲覧しました

How to Fix Facebook Graph API 2.3 Issues with Access Tokens and Missing User Data?

Facebook Graph API 2.3 の問題の解決

Graph API 2.3 のアップグレードにより、いくつかの予期せぬ問題が発生しました。 API 応答を取得できないことやユーザー データが欠落していることは、最も一般的なものの 1 つです。ただし、これらの問題を解決するには、バージョン 2.3 で導入された変更を理解する必要があります。

応答形式の変更

バージョン 2.3 では、「oauth/」の応答形式が変更されました。 access_token」エンドポイント。 URL エンコードされたデータの代わりに有効な JSON を返すようになりました。この変更は、Facebook SDK 3.2.2 のアクセス トークン解析メカニズムに影響します。

解決策

これを修正するには、SDK 内の「getAccessTokenFromCode」関数を変更する必要があります。応答を JSON として解析します。以下の更新されたコードは、この修正を示しています。

  $response = json_decode($access_token_response);
  if (!isset($response->access_token)) {
    return false;
  }
  return $response->access_token;
ログイン後にコピー

追加の変更

  • setExtendedAccessToken() 変更点: 「setExtendedAccessToken()」 」機能も同様のアップデートが必要です。以下の変更されたコードは、アクセス トークンの拡張に関する問題を解決します。
  public function setExtendedAccessToken() {
    try {
      // Get extended access token.
      $access_token_response = $this->_oauthRequest(
        $this->getUrl('graph', '/oauth/access_token'),
        $params = array(
          'client_id' => $this->getAppId(),
          'client_secret' => $this->getAppSecret(),
          'grant_type' => 'fb_exchange_token',
          'fb_exchange_token' => $this->getAccessToken(),
        )
      );
    }
    catch (FacebookApiException $e) {
      // User revoked authorization.
      return false;
    }

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

    $response = json_decode($access_token_response);
    if (!isset($response->access_token)) {
      return false;
    }

    $this->destroySession();

    $this->setPersistentData(
      'access_token', $response->access_token
    );
  }
ログイン後にコピー
  • 誕生日データがありません: ユーザーの誕生日を取得するには、追加の権限と特定のフィールド リクエストが必要です。必要な権限を持っており、フィールド リクエストで明示的に指定されていることを確認してください。

これらの更新と変更を実装することで、Facebook Graph API 2.3 で直面する問題を解決できます。

以上がアクセストークンとユーザーデータの欠落に関するFacebook Graph API 2.3の問題を修正する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート