Facebook Callback JSON有时不会返回电子邮件

时间:2011-04-06 18:46:54

标签: facebook facebook-graph-api

Facebook Graph API。

我正在请求电子邮件权限,除了一些用户之外它一切正常,json不会返回电子邮件字段。我不确定为什么会这样。代码是相同的,它适用于所有用户,返回电子邮件字段,除了100个左右的用户,在json中没有此字段的用户。所有其他领域都在那里。

之前有没有人遇到过这个问题?

我检查了facebook隐私设置,如果用户授予Facebook应用程序的电子邮件访问权限,则没有任何东西阻止电子邮件进入json,但这种情况发生在我身上。我在网上搜索,似乎没有其他人面临这个问题。

任何提示都将受到赞赏

4 个答案:

答案 0 :(得分:2)

永远不要假设Facebook会发送给你什么,不要指望每个领域都存在,也不要指望Graph请求做你想做的事。

Facebook有时会做这样的事情,这里和那里都是一个缺失的领域,在其他地方出现了一个神秘而意外的错误......虽然它也可以毫无害处地发现它也会发生在像用户启动时发送的signed_request这样的关键位置应用

你还必须知道'你的'Facebook可能不是其他人的Facebook。他们对代码进行地理和随机部署。隐藏您的电子邮件地址到每个应用程序的选项可能会出现给某人,但不会出于其他人,没有任何特殊原因。

考虑到您的特定问题,我怀疑有一个选项可以将您的电子邮件地址隐藏到拥有邮件权限的应用程序,但如果权限不是强制性的,则有人可以接受您的应用程序并稍后挑选可选权限。

答案 1 :(得分:0)

我最近处理这个问题。显然,facebook只承诺返回“有效的电子邮件”地址。某些帐户没有任何“有效的电子邮件”。他们可以是使用电话进行验证的帐户,也可以是电子邮件已过期的帐户。我尝试了一个帐户哪个电子邮件,让我们说“xxxx.gmail.com”已过期,当查询该帐户图时,我无法收到任何电子邮件显示(通过使用facebook调试器)。但是,当我在gmail中登录xxxx.gmail.com并重新激活电子邮件,并且我再次查询该帐户的图表api时,它能够返回给我电子邮件。

答案 2 :(得分:0)

有一段时间有同样的问题,导致一些沉重的撞击墙。

在我的情况下,问题是由于某些用户未经验证的电子邮件根本没有电子邮件(通过移动设备/短信注册时)。 在这种情况下,Facebook不会提供有关回复的电子邮件。

来自facebook docs

  

注意:如果没有有效的电子邮件地址,则不会返回此字段   可供用户使用

来源:

  1. https://github.com/mkdynamic/omniauth-facebook/issues/61
  2. Register with Facebook sometimes doesn't provide email(塞巴斯蒂安&colm'答案)
  3. https://developers.facebook.com/docs/reference/api/user/

答案 3 :(得分:-1)

唯一对我有用的是通过API请求允许的字段:

FB.api("/me", {fields: "email,..."}, callback)

这完全解决了这个问题。 希望有所帮助。