69 votes

Est-il possible de vérifier si un courriel est confirmé sur Facebook ?

Mise à jour

Ceci a été rapporté à Facebook via https://www.facebook.com/whitehat/report/ le 16 décembre 2013 et Facebook a répondu le 17 décembre que le bug a été corrigé depuis longtemps .

J'ai testé à nouveau ce phénomène avec mon compte Facebook (dont je n'ai toujours pas vérifié l'adresse électronique) et en utilisant la fonction Outil Grap API Explorer il n'est pas possible d'obtenir l'adresse électronique de ce compte à l'aide de l'API graphique ou d'une requête FQL.

Conclusion : L'adresse électronique que vous obtenez de Facebook en utilisant l'API graphique ou une requête FQL est une adresse vérifiée. Si un compte n'a pas encore vérifié son adresse électronique, il n'est pas possible de l'obtenir.

Poste original

Je crée une application Web avec SSO qui propose à l'utilisateur de se connecter avec Google ou Facebook. Je voudrais que les utilisateurs qui possèdent les deux types de comptes apparaissent comme le même utilisateur dans mon système, quelle que soit l'identité avec laquelle ils se connectent. Pour y parvenir, je pense utiliser l'adresse e-mail comme identifiant pour savoir si je dois créer un nouveau compte ou si l'utilisateur existe déjà.

Pour ne pas introduire de problèmes de sécurité, je dois savoir que l'adresse électronique est vérifiée et appartient réellement à l'utilisateur. Pour Google, le API d'information sur l'utilisateur peut me dire si un email est vérifié ou non, donc il n'y a pas de problème ici. Mais je ne peux pas trouver quelque chose comme cela dans le API graphique Facebook .

Est-il possible de savoir si une adresse électronique est confirmée sur Facebook ?

Je sais qu'il y a un verified mais cela n'indique que si le compte est vérifié et non l'adresse électronique.

Au début, il semblait que vous ne pouviez utiliser l'API graphique que pour les comptes dont l'adresse électronique a été confirmée. Si l'adresse n'était pas confirmée, un message d'erreur m'indiquait que je devais d'abord confirmer l'adresse électronique avant de pouvoir me connecter à un site tiers.

Toutefois, cela ne semble pas être vrai pour tous les comptes. Dans certains cas, il est possible d'obtenir des accès à toutes les parties de Facebook même si vous ne disposez pas d'une adresse électronique confirmée. C'est le cas, par exemple, lorsque vous vous inscrivez avec une @myopera.com adresse électronique.

Lorsque vous vous inscrivez sur Facebook avec une adresse électronique @myopera.com, vous recevez un message indiquant que votre compte a été temporairement verrouillé dès que vous soumettez le formulaire d'inscription. Pour continuer, vous devez fournir votre numéro de téléphone afin de vérifier votre compte et de "garder Facebook sûr et sans spam" (désolé pour le suédois dans la capture d'écran, c'était avant que je puisse entrer dans Facebook et changer la langue en anglais) :

Security check during sign up

Lorsque vous fournissez votre numéro de téléphone, vous êtes connecté et Facebook ne vous demande pas de vérifier votre adresse électronique.

Le seul endroit où vous pouvez voir que votre adresse électronique n'est pas encore vérifiée est sur la page des paramètres :

Facebook settings view with unconfirmed email address

Les paramètres mobiles, qui ne sont généralement pas accessibles avant que vous n'ayez vérifié votre adresse électronique, sont disponibles et indiquent le numéro de téléphone saisi lors de l'inscription :

Facebook mobile settings view with unconfirmed email address

En outre, il est également possible de se connecter à des sites tiers avec une adresse électronique non confirmée :

Logging in to graph API explorer with an unconfirmed email address

Lorsque je me connecte à l'api graphique avec cet utilisateur, je peux obtenir l'adresse électronique non confirmée et l'adresse de l'utilisateur. verified retourne vrai comme prévu puisque j'ai vérifié le compte en ajoutant un numéro de téléphone. Il est donc évident que je ne peux pas être sûr que l'adresse électronique que je reçois de Facebook appartient réellement à l'utilisateur qui possède le compte Facebook.

Existe-t-il un autre moyen de savoir si l'adresse électronique est vérifiée ou non ou dois-je la vérifier moi-même si je veux l'utiliser pour identifier l'utilisateur ?

1 votes

Si c'est seulement pour myopera.com, nous pouvons les traiter comme non vérifiés même si le graphique de facebook dit qu'ils sont "vérifiés" : "true". La question est de savoir s'il existe d'autres exemptions comme myopera.com ? En outre, on peut se demander pourquoi Facebook les traite différemment ?

0 votes

Je suis dans une position similaire où je veux "fusionner" différents comptes. @nibarius, avez-vous réussi à trouver une solution ? Il semble que le seul champ connexe de l'API graphique soit effectivement la propriété "vérifié", mais cela ne semble PAS être ce dont on a besoin ici, car cela signifie en fait autre chose.

0 votes

@guya, bien sûr, il serait possible de traiter toutes les adresses myopera.com comme non vérifiées. Mais comme vous le dites, il est impossible de savoir s'il en va de même pour les autres adresses.

9voto

jano Points 156

Je cherchais une déclaration officielle de Facebook concernant cette question et j'ai finalement trouvé ceci : https://developers.facebook.com/docs/facebook-login/multiple-providers#postfb1 qui indique clairement que le développeur ne doit pas se fier au fait que l'adresse électronique est vérifiée.

3voto

J. Scott Elblein Points 195

Bien que ce ne soit pas la façon la plus optimale de procéder, vous pouvez essayer de contourner le problème en envoyant simplement une recherche et en analysant les résultats :

http://www.facebook.com/search/results.php?q=<email address here>

Vous êtes également soumis à tous les paramètres de confidentialité particuliers que les utilisateurs ont définis pour eux-mêmes en ce qui concerne la possibilité d'effectuer des recherches, mais en l'absence d'autres moyens ...

1voto

John Syrinek Points 437

Je ne l'ai jamais utilisé, mais vous pouvez peut-être vérifier avec une requête FQL de user.email_hashes : http://developers.facebook.com/docs/reference/fql/user

0 votes

Sur la base de cette documentation, cela semble prometteur. Cependant, après quelques tests, il semble qu'il ne puisse pas être utilisé après tout. Comme indiqué dans la question suivante de stackoverflow, il semble que vous deviez enregistrer vous-même les emails pour lesquels vous souhaitez obtenir des hachages avant que user.email_hashes ne renvoie quoi que ce soit : stackoverflow.com/questions/7620314/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X