Warum gibt die getUser()-Methode des Facebook PHP SDK immer 0 zurück?
Beim Versuch, die Facebook-Benutzer-ID mit getUser() abzurufen Methode des PHP SDK haben viele Entwickler das Problem, dass sie ständig den Wert 0 erhalten. Dieses Problem tritt trotz ordnungsgemäßer Autorisierung der Anwendung über die Anmeldeschaltfläche auf Funktion.
Eine mögliche Ursache für dieses Problem liegt in der Abhängigkeit des Frameworks von der Variablen $_REQUEST. Allerdings führt die Umgebung möglicherweise nicht immer automatisch die Variablen $_REQUEST mit den Variablen $_GET, $_POST und $_COOKIE zusammen. Diese Diskrepanz kann die Fähigkeit der Funktion getCode() behindern, den Autorisierungscode abzurufen.
Lösung:
Um dieses Problem zu beheben, ändern Sie die Funktion getCode() in base_facebook. php wie folgt:
protected function getCode() { $server_info = array_merge($_GET, $_POST, $_COOKIE); if (isset($server_info['code'])) { if ($this->state !== null && isset($server_info['state']) && $this->state === $server_info['state']) { $this->state = null; $this->clearPersistentData('state'); return $server_info['code']; } else { self::errorLog('CSRF state token does not match one provided.'); return false; } } return false; }
Diese Änderung stellt sicher, dass die Funktion getCode() ordnungsgemäß nach dem Autorisierungscode in allen möglichen Anforderungsvariablen sucht. Nach der Implementierung dieser Änderung sollte die Methode getUser() den angemeldeten Facebook-Benutzer korrekt identifizieren.
Das obige ist der detaillierte Inhalt vonWarum gibt die PHP SDK-Methode „getUser()' von Facebook 0 zurück und wie kann ich das beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!