Heim > Backend-Entwicklung > PHP-Tutorial > Warum gibt „getUser()' des Facebook PHP SDK immer 0 zurück?

Warum gibt „getUser()' des Facebook PHP SDK immer 0 zurück?

Mary-Kate Olsen
Freigeben: 2024-11-23 03:41:09
Original
848 Leute haben es durchsucht

Why Does Facebook PHP SDK's `getUser()` Always Return 0?

Warum gibt das Facebook PHP SDK getUser() immer 0 zurück?

Im Prozess der Authentifizierung von Benutzern für eine in Facebook integrierte Website ist dies der Fall entscheidend für die getUser()-Funktion des PHP SDK, um die richtige Benutzer-ID zurückzugeben. Bei einigen Entwicklern tritt jedoch ein Problem auf, bei dem diese Funktion durchgängig 0 zurückgibt, selbst nachdem der Benutzer die App autorisiert hat.

Verstehen des Problems

Die Funktion überprüft das Superglobal $_REQUEST für den Code-Parameter, der von Facebook nach Autorisierung gesetzt wird. In bestimmten Umgebungen kann es jedoch sein, dass das Superglobal $_REQUEST nicht ordnungsgemäß mit $_GET, $_POST und $_COOKIE zusammengeführt wird.

Lösung

Eine Lösung besteht darin, es manuell durchzuführen Führen Sie diese Superglobals in einer neuen Variablen zusammen, wie in der geänderten Funktion getCode() gezeigt unten:

protected function getCode() {
    $server_info = array_merge($_GET, $_POST, $_COOKIE);

    if (isset($server_info['code'])) {
        // Rest of the function logic...
    }
}
Nach dem Login kopieren

Zusätzliche Überlegungen

Zusätzlich zum getCode()-Fix ist es wichtig sicherzustellen, dass die folgenden Einstellungen im Facebook Developers Portal korrekt konfiguriert sind :

  • Site-URL: Die URL, unter der sich die App befindet gehostet
  • Site-Domain: Die Domain der Website, ohne Subdomains

Diese Einstellungen helfen Facebook, die autorisierte App zu identifizieren und Benutzer anschließend an den richtigen Ort weiterzuleiten Autorisierung.

Fazit

Durch Zusammenführung von $_REQUEST superglobal richtig einsetzen und genaue Einstellungen im Facebook Developers Portal sicherstellen, können Entwickler das Problem beheben, bei dem das Facebook PHP SDK getUser() 0 zurückgibt. Dadurch kann die Website nahtlos in Facebook integriert werden und Benutzerinformationen für maßgeschneiderte Erlebnisse abrufen.

Das obige ist der detaillierte Inhalt vonWarum gibt „getUser()' des Facebook PHP SDK immer 0 zurück?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage