Heim > Backend-Entwicklung > PHP-Tutorial > Wie behebe ich Probleme mit der Facebook Graph API 2.3 mit Zugriffstokens und fehlenden Benutzerdaten?

Wie behebe ich Probleme mit der Facebook Graph API 2.3 mit Zugriffstokens und fehlenden Benutzerdaten?

DDD
Freigeben: 2024-12-26 07:55:09
Original
143 Leute haben es durchsucht

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

Facebook Graph API 2.3 Behebung von Problemen

Das Graph API 2.3-Upgrade hat einige unerwartete Probleme hervorgebracht. API-Antworten können nicht abgerufen werden und fehlende Benutzerdaten gehören zu den häufigsten Problemen. Die Lösung für diese Probleme liegt jedoch im Verständnis der in Version 2.3 eingeführten Änderungen.

Änderung des Antwortformats

Version 2.3 hat das Antwortformat für „oauth/“ geändert. access_token“-Endpunkt. Es gibt jetzt gültiges JSON anstelle von URL-codierten Daten zurück. Diese Änderung betrifft den Zugriffstoken-Parsing-Mechanismus im Facebook SDK 3.2.2.

Lösung

Um dies zu beheben, müssen Sie die Funktion „getAccessTokenFromCode“ im SDK ändern um die Antwort als JSON zu analysieren. Der aktualisierte Code unten demonstriert diesen Fix:

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

Zusätzliche Änderungen

  • setExtendedAccessToken()-Änderung: Das „setExtendedAccessToken()“ "-Funktion erfordert ebenfalls ein ähnliches Update. Der geänderte Code unten behebt das Problem mit der Erweiterung von Zugriffstokens.
  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
    );
  }
Nach dem Login kopieren
  • Fehlende Geburtstagsdaten: Das Abrufen des Geburtstags eines Benutzers erfordert zusätzliche Berechtigungen und eine bestimmte Feldanforderung. Stellen Sie sicher, dass Sie über die erforderlichen Berechtigungen verfügen und in Ihrer Feldanfrage explizit angeben.

Durch die Implementierung dieser Updates und Änderungen können Sie die Probleme lösen, die mit der Facebook Graph API 2.3 auftreten.

Das obige ist der detaillierte Inhalt vonWie behebe ich Probleme mit der Facebook Graph API 2.3 mit Zugriffstokens und fehlenden Benutzerdaten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage