Pourquoi la méthode getUser() du SDK PHP Facebook renvoie-t-elle toujours 0 ?
Lorsque vous essayez de récupérer l'ID utilisateur de Facebook à l'aide de getUser() méthode du SDK PHP, de nombreux développeurs rencontrent le problème de recevoir constamment la valeur 0. Ce problème survient malgré l'autorisation correcte de l'application via le bouton de connexion fonctionnalité.
Une cause possible de ce problème réside dans la dépendance du framework à l'égard de la variable $_REQUEST. Cependant, l'environnement ne fusionne pas toujours automatiquement $_REQUEST avec les variables $_GET, $_POST et $_COOKIE. Cette différence peut entraver la capacité de la fonction getCode() à récupérer le code d'autorisation.
Solution :
Pour résoudre ce problème, modifiez la fonction getCode() dans base_facebook. php comme suit :
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; }
Cette modification garantit que la fonction getCode() vérifie correctement le code d'autorisation dans toutes les variables de requête possibles. Après avoir implémenté ce changement, la méthode getUser() devrait identifier correctement l'utilisateur Facebook connecté.
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!