Facebook Email champ de retourner la valeur null (même si le “e-mail” autorisation est définie et acceptée)
Pour certains utilisateurs de notre application, le champ e-mail renvoie la valeur NULL si l'utilisateur a accordé l'accès à la messagerie de l'application.
Lorsque nous avons vérifier le paramètre d'étendue et la validité du Jeton de l'utilisateur grâce à l'outil de débogage, tout est ok. La permission par courriel a été acceptée.
Mais lorsque l'on demande l'API Graphique de l'e-mail de l'utilisateur avec le jeton de l'utilisateur, il n'apparaît pas du tout.
Est-il possible qu'un utilisateur pourrait empêcher une application à partir de l'obtention de son message même si il a obtenu l'e-mail d'autorisation?
Grâce
- Pour le Sdk PHP, ce link peut aider quelqu'un!
- Assurez-vous que le protocole OAuth appel, vous avez le jeton d'accès comprennent
scope: ['email']
. Assurez-vous d'essayer votre jeton d'accès avec le l'API Graphique Explorer et assurez-vous que le "e-mail" autorisation de gauche n'est pas grisé.
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème et je crois que j'ai trouvé pourquoi:
Si l'utilisateur dispose d'une non confirmées e-mail de Facebook (c'est à dire Facebook lui a envoyé un mail de validation de l'adresse email de l'utilisateur, mais il n'a pas répondu) Facebook ne passera PAS cet e-mail pour votre application, même si il vous a donné l'e-mail autorisations.
Donc ce que j'ai fait, c'est utiliser son Facebook e-mail si l'utilisateur possède un nom d'utilisateur (c'est à dire [email protected]).
J'ai le même problème. Il fonctionne très bien sur mon localhost, je suis en utilisant php SDK de facebook login et quand je soumettre ma demande c'est de retourner tous les champs comme le courrier électronique,nom, etc de l'utilisateur, mais sur le serveur en quelque sorte, il n'est pas de travail.Il ne renvoie email de l'utilisateur.
J'ai fait beaucoup de R&D et j'ai la solution pour le problème. 🙂
si vous utilisez php-sdk transmet simplement les champs comme cela, il renvoie l'e-mail,prenom etc.
Espère que cela fonctionne pour vous tous.
merci.
Facebook n'envoie pas d'e-mail si l'utilisateur s'est connecté avec leur numéro de téléphone.
Afficher les commentaires sur https://github.com/mkdynamic/omniauth-facebook/issues/61 pour plus d'info.
Tout ce que vous devez savoir:
1) Lien 1
2) Lien 2
Vous devez donner l'email d'autorisation avec l'auth bouton.
Dans certains cas, Facebook ne peut pas avoir une adresse email valide pour un utilisateur:
voir https://developers.facebook.com/docs/reference/api/user/
Facebook sera de vous fournir de l'utilisateur id e-mail si et seulement que l'utilisateur a confirmé l'adresse e-mail associée à son compte. Si votre application peut récupérer l'adresse e-mail pour certains utilisateurs, le problème ne peut pas avec le Développeur de.
@ozba solution n'est pas applicable parce que facebook affiche désormais un message d'alerte lorsque l'utilisateur a une signalisation non confirmée adresse e-mail. Donc, si vous rencontrez ce problème, il est plus de goût que l'utilisateur a signé à l'aide de votre numéro de téléphone.
Quelques raisons possibles:
Vérifier: https://developers.facebook.com/bugs/298946933534016
Selon la la documentation:
Qui pourrait expliquer pourquoi certains utilisateurs ont une
null
email!J'ai lu les réponses antérieures, mais si certains d'entre eux vrai si l'utilisateur n'a pas e-mail confirmé, mais un numéro de téléphone mobile, de nombreuses fois cette erreur se produit pour ignorer la façon de demander les informations à l'aide de FB graph api. Disons que votre connexion a été réalisé avec succès, et vous avez maintenant un jeton d'accès utilisateur et l'id d'une sorte de suite, mais encore, ne peut pas voir le courrier électronique et d'autres domaines qui vous intéressent. Aller de l'avant à l'aide de cette demande après confirmation de l'état de connexion connecté:
dépend des autorisations que vous avez demandé vous allez maintenant être en mesure d'attraper de plus amples informations en fonction de vos besoins.
vous pouvez essayer cela, il va travailler
String email = utilisateur.getProperty("email").toString();
Chaîne safeEmail = utilisateur.asMap().get("email").toString();
Vous avez besoin d'un de plus la permission de facebook.
inclure (about_me) l'autorisation de le facebook dev paramètre et également dans votre application ou de votre code..