Pour certains utilisateurs de notre application, le champ e-mail renvoie la valeur NULL même si l'utilisateur a accordé à l'e-mail l'accès à l'application . Lorsque nous vérifions le paramètre scope et la validité du jeton de l'utilisateur grâce à l'outil Debugger, tout est ok . L’email de permission a été accepté ..__ Mais, lorsque nous demandons à l’API Graph de l’email de l’utilisateur contenant le jeton d’utilisateur valide, il n’apparaît pas du tout.
Existe-t-il un moyen d'empêcher une application de recevoir son courrier électronique, même s'il l'autorisait?
Merci
J'ai eu le même problème et je pense avoir compris pourquoi: Si l'utilisateur a un email non confirmé dans Facebook (c'est-à-dire que Facebook lui a envoyé un mail de validation à l'adresse e-mail de l'utilisateur mais il n'a pas répondu) envoyer un courriel à votre application même s'il vous a donné les autorisations par courriel.
Donc, ce que j'ai fait est d'utiliser son email Facebook si l'utilisateur a un nom d'utilisateur (c'est-à-dire [email protected]).
J'ai le même problème. Cela fonctionne bien sur mon hôte local, j'utilise php SDK pour la connexion à Facebook et lorsque je soumets ma demande, il renvoie tous les champs tels que l'email, le nom de l'utilisateur, mais sur le serveur, il ne fonctionne pas. . J'ai fait beaucoup de R & D à ce sujet et j'ai la solution au problème. :)
$profile = $facebook->api('/me?fields=email,first_name,last_name');
si vous utilisez php-sdk, il suffit de passer des champs comme celui-ci, il retourne l’email, le prénom, etc., etc. .. Espère que cela fonctionne pour vous tous ... Merci.
Facebook n'envoie pas l'e-mail si l'utilisateur s'est connecté avec son numéro de téléphone . Consultez les commentaires sur https://github.com/mkdynamic/omniauth-facebook/issues/61 pour plus d'informations.
Tout ce que tu dois savoir:
1) Lien 1
Quelques raisons possibles:
Pas d'adresse email sur le compte
Aucune adresse e-mail confirmée sur le compte
Aucune adresse e-mail vérifiée sur le compte
L'utilisateur a entré un point de contrôle de sécurité qui lui a demandé de reconfirmer son adresse électronique et ne l'a pas encore fait.
L'adresse email de l'utilisateur est inaccessible
Vous avez également besoin de la permission étendue 'email', même pour les utilisateurs qui ont une adresse e-mail valide, confirmée et accessible au dossier.
2) Lien 2
Notez que même si vous demandez une autorisation par courrier électronique, cela n’est pas garanti vous obtiendrez une adresse e-mail. Par exemple, si quelqu'un s'est inscrit pour Facebook avec un numéro de téléphone au lieu d'une adresse email, l'email le champ peut être vide.
Vous devez donner la permission d'email avec le bouton auth.
authButton.setReadPermissions(Arrays.asList("email"));
Dans certains cas, Facebook peut ne pas avoir d'adresse électronique valide pour un utilisateur:
email: chaîne contenant une adresse email valide RFC822 - note: this le champ peut être nul si aucune adresse électronique n'est disponible pour l'utilisateur
voir https://developers.facebook.com/docs/reference/api/user/
La solution @ozba n'est pas applicable car Facebook affiche désormais un message d'alerte lorsque l'utilisateur a une adresse e-mail non confirmée. Donc, si vous rencontrez ce problème, il est plus agréable que l'utilisateur se soit inscrit en utilisant le numéro de téléphone .
Quelques raisons possibles:
Vérifiez: https://developers.facebook.com/bugs/298946933534016
Facebook vous fournira l'identifiant de messagerie d'un utilisateur si et seulement cet utilisateur est associé à un identifiant de messagerie confirmée. Si votre application peut récupérer l'identifiant de messagerie pour certains utilisateurs, le problème ne concerne peut-être pas le développeur.
J'ai lu les réponses précédentes mais si certaines d'entre elles sont vraies, par exemple si l'utilisateur n'a pas confirmé le courrier électronique mais un numéro de téléphone portable, cette erreur se produit souvent lorsque vous ignorez comment demander les informations à l'aide de FB api graph. Supposons que votre connexion a été établie avec succès et que vous disposez maintenant d'un jeton d'accès et d'un identifiant d'utilisateur, mais ne voyez toujours pas les courriers électroniques ni les autres champs qui vous intéressent. Continuez à utiliser cette demande après avoir confirmé le statut de connexion en tant que connecté:
FB.api(
'/me',
'GET',
{"fields":"id,name,birthday,email,about,cover"},
function(response) {
// Insert your code here
}
);
dépend des autorisations que vous avez demandées, vous pourrez maintenant obtenir des informations supplémentaires en fonction de vos besoins.
Selon la documentation :
Remarque: même si vous demandez l'autorisation par courrier électronique, il n'est pas garanti que vous obtiendrez une adresse électronique. Par exemple, si une personne s'est inscrite pour Facebook avec un numéro de téléphone au lieu d'une adresse électronique, le champ de l'adresse électronique peut être vide.
Cela expliquerait pourquoi certains utilisateurs ont un e-mail null
!
Vous avez besoin d'une autre permission de facebook.
inclure (about_me) la permission pour le paramètre dev Facebook et également dans votre application ou code.
vous pouvez essayer cela fonctionnera String email = user.getProperty ("email"). toString (); String safeEmail = user.asMap (). get ("email"). toString ();