Maison  >  Article  >  développement back-end  >  Pourquoi la méthode `getUser()` du SDK PHP de Facebook renvoie-t-elle 0 et comment puis-je y remédier ?

Pourquoi la méthode `getUser()` du SDK PHP de Facebook renvoie-t-elle 0 et comment puis-je y remédier ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-22 05:33:14488parcourir

Why Does Facebook's PHP SDK `getUser()` Method Return 0, and How Can I Fix It?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn