Facebook API中间歇性丢失的电子邮件地址

Fra*_*osa 21 email facebook

我的应用程序使用带有OAuth令牌的"https://graph.facebook.com/me"请求来获取有关用户的属性.电子邮件地址是我们需要的属性之一,我们在请求访问时明确请求权限.

它在99%的时间内都能正常工作,但在少数情况下,响应会在名为"email"的jSON数据中没有任何对象.

是否有可能发生这种情况的解释,例如用户可以授予我们权限但仍然阻止其电子邮件地址的方式?或者可以在另一把钥匙下找到它?

谢谢.

Igy*_*Igy 11

简短回答:并非所有用户都有可用的电子邮件地址,而且那些用户可能没有有效的,可访问的电子邮件地址

该对象email字段的文档user(https://developers.facebook.com/docs/reference/api/user/)阐明了此处的预期行为,即:"如果没有有效的电子邮件地址,则不会返回此字段可用"

在许多情况下,您可能认为用户应该返回一个电子邮件地址,但他们不会.一些常见的原因:

  • 帐户没有电子邮件地址
  • 帐户中未确认,经过验证的电子邮件地址
  • 用户输入了一个安全检查点,要求他们重新确认他们的电子邮件地址,但他们尚未这样做
  • 用户的电子邮件地址无法访问

您还需要email扩展权限(用户可以选择不允许),即使对于具有有效,已确认,可访问的电子邮件地址的用户也是如此.


小智 8

http://touch.facebook.com/r.php上的移动注册表单允许您使用电子邮件地址或电话号码进行注册.所以我不认为所有Facebook用户都有一个存储在他们身上的电子邮件地址.


bka*_*aid 3

用户可以在应用程序隐私设置页面撤销电子邮件地址权限,而无需撤销整个应用程序。您可以首先调用 /me/permissions 以确保电子邮件权限仍然被授予。