Maison > développement back-end > tutoriel php > Comment résoudre les problèmes de Facebook Graph API 2.3 avec les jetons d'accès et les données utilisateur manquantes ?

Comment résoudre les problèmes de Facebook Graph API 2.3 avec les jetons d'accès et les données utilisateur manquantes ?

DDD
Libérer: 2024-12-26 07:55:09
original
202 Les gens l'ont consulté

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

Résolution des problèmes de l'API Graph 2.3 de Facebook

La mise à niveau de l'API Graph 2.3 a entraîné des problèmes inattendus. L'impossibilité de récupérer les réponses de l'API et les données utilisateur manquantes sont parmi les plus courantes. Cependant, la solution à ces problèmes réside dans la compréhension des modifications introduites dans la version 2.3.

Changement de format de réponse

La version 2.3 a modifié le format de réponse pour le "oauth/ point de terminaison access_token". Il renvoie désormais un JSON valide au lieu des données codées en URL. Ce changement affecte le mécanisme d'analyse des jetons d'accès dans le SDK Facebook 3.2.2.

Solution

Pour remédier à cela, vous devez modifier la fonction "getAccessTokenFromCode" au sein du SDK pour analyser la réponse au format JSON. Le code mis à jour ci-dessous illustre ce correctif :

  $response = json_decode($access_token_response);
  if (!isset($response->access_token)) {
    return false;
  }
  return $response->access_token;
Copier après la connexion

Modifications supplémentaires

  • Modification setExtendedAccessToken() : Le "setExtendedAccessToken() " La fonction nécessite également une mise à jour similaire. Le code modifié ci-dessous résout le problème d'extension des jetons d'accès.
  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
    );
  }
Copier après la connexion
  • Données d'anniversaire manquantes : La récupération de l'anniversaire d'un utilisateur nécessite des autorisations supplémentaires et une demande de champ spécifique. Assurez-vous de disposer des autorisations nécessaires et d'être explicites dans votre demande de champ.

En mettant en œuvre ces mises à jour et modifications, vous pouvez résoudre les problèmes rencontrés avec l'API Facebook Graph 2.3.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal