首页 文章

是否可以检查Facebook上是否确认了电子邮件?

提问于
浏览
62

更新

这是在2013年12月16日通过https://www.facebook.com/whitehat/report/向Facebook报道的,Facebook于12月17日回复 the bug has long since been fixed .

我已经用我的Facebook帐户重新测试了这个(我还没有验证电子邮件地址),当使用Grap API Explorer tool时,无法使用Graph API或使用FQL查询获取此帐户的电子邮件地址 .

Conclusion: 您使用Graph API或FQL查询从Facebook获得的电子邮件地址是经过验证的电子邮件 . 如果一个帐户没有't verified it'的电子邮件,那么就无法获得它 .

原帖

我正在制作一个带有SSO的网络应用程序,用户可以通过Google或Facebook登录 . 我希望拥有这两种类型帐户的用户在我的系统中显示为同一用户,无论他们使用哪种身份登录 . 为了实现这一点,我正在考虑使用电子邮件地址作为标识符来了解我是否应该创建一个新帐户或者用户是否已经存在 .

为了不引入任何安全问题,我必须知道电子邮件地址已经过验证,并且实际上属于用户 . 对于Google,userinfo API可以告诉我电子邮件是否已经过验证,所以这里没有问题 . 但我在Facebook Graph API找不到这样的东西 .

Is it possible to know if an email address is confirmed on Facebook?

我知道有一个 verified 字段,但只会告知帐户是否已经过验证,而不是电子邮件地址 .

起初看起来您只能将图谱API用于已确认电子邮件地址的帐户 . 如果地址未得到确认,我只是在收到错误时告诉我必须先确认电子邮件地址才能登录任何第三方网站 .

然而,对于所有帐户而言,这似乎并非如此 . 在某些情况下,'s possible to get accesses to all parts of Facebook even if you don' t有一个确认的电子邮件地址 . 例如,当您使用@myopera.com邮件地址注册时 .

当您使用@ myopera.com电子邮件地址注册Facebook时,您会收到一条消息,表明您的帐户在提交注册表单后已暂时锁定 . 要继续,您需要提供您的电话号码以验证您的帐户并“保持Facebook安全且免受垃圾邮件”(对于屏幕截图中的瑞典语,这是在我进入Facebook并将语言更改为英语之前):

Security check during sign up

当您提供电话号码时,您已登录,Facebook不会再唠叨您必须验证您的电子邮件地址 .

您可以在设置页面上看到尚未验证您的电子邮件地址的唯一位置:

Facebook settings view with unconfirmed email address

在您验证电子邮件地址之前通常无法访问的移动设置可用,并列出注册期间输入的电话号码:

Facebook mobile settings view with unconfirmed email address

除此之外,还可以使用未经证实的电子邮件地址登录第三方站点:

Logging in to graph API explorer with an unconfirmed email address

当我使用此用户连接到图形API时,我可以获得未经证实的电子邮件地址,并且 verified 字段按预期返回true,因为我通过添加电话号码verified the account . 显然我不相信我从Facebook获得的电子邮件地址真的属于拥有Facebook帐户的用户 .

有没有其他方法可以知道电子邮件地址是否经过验证,或者如果我想用它来识别用户,我是否必须自己验证?

2 回答

  • 0

    虽然不是最佳的方法,但您可以通过发送搜索并解析结果来尝试解决方法:

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

    您还要受到用户为可自行设置的任何特定隐私设置的约束,但不能以其他方式代替......

  • 3

    我从来没有使用它,但你可以检查user.email_hashes的FQL查询:http://developers.facebook.com/docs/reference/fql/user

相关问题