Pourquoi le SDK PHP Facebook getUser() renvoie-t-il toujours 0 ?
Dans le processus d'authentification des utilisateurs d'un site Web intégré à Facebook, il est crucial pour que la fonction getUser() du SDK PHP renvoie l’ID utilisateur correct. Cependant, certains développeurs rencontrent un problème où cette fonction renvoie systématiquement 0, même après que l'utilisateur autorise l'application.
Comprendre le problème
La fonction vérifie le superglobal $_REQUEST pour le paramètre de code, qui est défini par Facebook après autorisation. Cependant, dans certains environnements, le superglobal $_REQUEST peut ne pas être fusionné correctement avec $_GET, $_POST et $_COOKIE.
Solution
Une solution consiste à manuellement fusionner ces superglobales dans une nouvelle variable, comme indiqué dans la fonction getCode() modifiée ci-dessous :
protected function getCode() { $server_info = array_merge($_GET, $_POST, $_COOKIE); if (isset($server_info['code'])) { // Rest of the function logic... } }
Considérations supplémentaires
En plus du correctif getCode(), il est important de s'assurer que les paramètres suivants sont correctement configurés dans le portail des développeurs Facebook :
Ces paramètres aident Facebook à identifier l'application autorisée et à rediriger les utilisateurs vers le bon emplacement après autorisation.
Conclusion
En fusionnant les $_REQUEST superglobal correctement et en garantissant des paramètres précis dans le portail des développeurs Facebook, les développeurs peuvent résoudre le problème où Facebook PHP SDK getUser() renvoie 0. Cela permet au site Web de s'intégrer de manière transparente à Facebook et de récupérer les informations utilisateur pour des expériences personnalisées.
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!