web-dev-qa-db-fra.com

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

Mettre à jour

Cela 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 bogue a été corrigé depuis longtemps.

J'ai réessayé cette information avec mon compte Facebook (pour lequel je n'ai toujours pas vérifié l'adresse électronique) et lorsque vous utilisez l'outil outil Grap API Explorer , il n'est pas possible d'obtenir l'adresse électronique de ce compte à l'aide du graphique. API ou en utilisant une requête FQL.

Conclusion: L'adresse email que vous obtenez de Facebook en utilisant l'API Graph ou une requête FQL est un email vérifié. Si un compte n'a pas vérifié, il s'agit d'un courrier électronique, mais il n'est pas possible de l'obtenir. 

Poste originale

Je crée une application Web avec l'authentification unique qui offre à l'utilisateur de se connecter avec Google ou Facebook. J'aimerais que les utilisateurs possédant les deux types de comptes s'affichent comme le même utilisateur sur mon système, quelle que soit l'identité avec laquelle ils se connectent. Pour ce faire, je pense utiliser l'adresse électronique 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 e-mail est vérifiée et appartient réellement à l'utilisateur. Pour Google, la userinfo API peut me dire si un email est vérifié ou non, il n'y a donc aucun problème ici. Mais je ne trouve rien de tel dans la Facebook Graph API .

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

Je sais qu'il existe un champ verified, mais cela indique uniquement si le compte est vérifié et non l'adresse électronique.

Au début, il semblait que vous ne puissiez utiliser l'API Graph que pour les comptes pour lesquels l'adresse électronique a été confirmée. Si l'adresse n'a pas été confirmée, un message d'erreur me dit que je devais d'abord confirmer l'adresse e-mail avant de pouvoir me connecter à un site tiers.

Cependant, cela ne semble pas être vrai pour tous les comptes. Dans certains cas, il est possible d'obtenir un accès à toutes les parties de Facebook même si vous n'avez pas d'adresse e-mail confirmée. Un exemple de ceci est lorsque vous vous inscrivez avec une adresse mail @ myopera.com .

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 avez envoyé le formulaire d'inscription. Pour continuer, vous devez fournir votre numéro de téléphone afin de vérifier votre compte et de "protéger Facebook du spam et du spam" (désolé du suédois sur la capture d'écran, c'était avant que je puisse accéder à Facebook et changer de 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 reproche pas plus que vous devez vérifier votre adresse e-mail.

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

Facebook settings view with unconfirmed email address

Les paramètres de mobile qui ne sont généralement pas accessibles avant d'avoir vérifié que votre adresse e-mail est disponible et qui répertorient le numéro de téléphone entré lors de votre inscription:

Facebook mobile settings view with unconfirmed email address

En plus de cela, il est également possible de se connecter à des sites tiers avec une adresse e-mail 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 e-mail non confirmée et le champ verified renvoie la valeur true comme prévu puisque j'ai vérifié le compte en ajoutant un numéro de téléphone. Alors évidemment, je ne peux pas croire que l'adresse email que je reçois de Facebook appartient vraiment à l'utilisateur qui possède le compte Facebook.

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

63
nibarius

Bien que cela ne soit pas la méthode la plus optimale, vous pouvez essayer une solution de contournement 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 à des paramètres de confidentialité particuliers que les utilisateurs ont configurés pour être consultables, mais sans autre moyen ...

3
J. Scott Elblein

Je cherchais une déclaration officielle de Facebook sur ce problème et je trouvai finalement ceci: https://developers.facebook.com/docs/facebook-login/multiple-providers#postfb1 , qui indique clairement que le développeur ne doit pas compter sur le fait que l'adresse email est vérifiée.

0
jano

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

0
Johntron