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... } }
Zusätzliche Überlegungen
Zusätzlich zum getCode()-Fix ist es wichtig sicherzustellen, dass die folgenden Einstellungen im Facebook Developers Portal korrekt konfiguriert sind :
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!