5

当用户注册我的网站时,我使用 Facebook Connect 和 Facebook Graph API 来获取用户的电子邮件地址。这在 99% 的情况下都能完美运行,但有时当我在用户授予我的站点权限(包括电子邮件权限)后查询 Graph API 以获取用户数据时,Facebook 会返回一个大数字(例如 14036774009)作为此人的电子邮件地址。

到目前为止,这些数字总是不同的,并且总是 11 位长,并且来自 Graph API 的所有其他用户数据都是有效的。我从来没有能够用我控制的 Facebook 帐户复制这个问题。

在某些方面,大量的数字让我想起了 Facebook 为选择为第三方应用程序提供转发地址而不是主地址的人生成的随机代理电子邮件地址(代理地址看起来像这样:apps+148742679521093.617890126.8a2b26037e1ccd06bb81aaec5925f4c7@ proxymail.facebook.com)

谁能解释这种行为或解决它的方法(并始终获得有效的电子邮件地址)?

4

3 回答 3

2

这是一个错误。已向 Facebook 报告:

https://developers.facebook.com/bugs/298946933534016

即使使用图形资源管理器 - https://developers.facebook.com/tools/explorer ,它似乎也在发生,但仅适用于某些用户。在我的情况下,大约 0.2% 的时间。

因此,在修复之前,您有 2 个选项:

  • 如果 Facebook 为您提供了错误的电子邮件值,请手动向用户询问他/她的电子邮件。
  • 保存长期存在的访问令牌并定期重试以查看您是否收到正确的电子邮件。
于 2012-07-05T22:53:09.757 回答
0

您还在以某种方式使用旧的身份验证对话框吗?提供代理电子邮件地址的功能仅在旧的身份验证对话框中

于 2012-06-10T10:28:01.393 回答
0

这发生在使用手机号码注册 Facebook 并且返回的号码就是这样的人身上。

无法获取用户的电子邮件地址,因为他可能尚未将其提供给 Facebook。

于 2013-01-03T14:06:51.833 回答