【问题标题】:Facebook Callback JSON does not return email sometimesFacebook 回调 JSON 有时不返回电子邮件
【发布时间】:2017-07-12 14:23:00
【问题描述】:

Facebook 图形 API。

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

以前有人遇到过这个问题吗??

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

任何提示将不胜感激

【问题讨论】:

  • 这取决于 Facebook 上的用户。他们可以设置隐私政策,从不共享电子邮件地址。
  • 感谢您的回复。即使在用户在执行 FB Connect 时授予对应用程序的电子邮件访问权限后,这样的选项在哪里也能阻止电子邮件进入 json。
  • 我认为它在用户隐私选项卡上。您可以设置应用程序能看到或不能看到的内容。
  • 我尝试了所有可能的隐私设置组合,但无法重现该问题。我什至将电子邮件地址可见性设置为“只有我”删除应用程序并尝试再次进行 FB 连接。然后它显示弹出询问用户的电子邮件访问权限,一切正常。只是不知道究竟是什么设置导致了这个
  • @zing 您是否设法找到解决此问题的方法?我似乎遇到了同样的问题。

标签: facebook facebook-graph-api


【解决方案1】:

永远不要假设 Facebook 会向您发送什么,永远不要期望每个字段都存在,也永远不要期望 Graph 请求会执行您想要的操作。

Facebook 有时会做这样的事情,这里和那里缺少一个字段,在其他地方出现一个神秘和意外的错误......虽然它可能没有害处,但它也会发生在关键的地方,比如当用户启动一个应用程序。

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      有一段时间也有同样的问题,导致一些沉重的头撞在墙上。

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

      来自facebook docs

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

      来源:

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

      【讨论】:

        【解决方案4】:

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

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

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

        【讨论】:

          猜你喜欢
          • 2013-08-25
          • 1970-01-01
          • 1970-01-01
          • 2017-09-29
          • 1970-01-01
          • 1970-01-01
          • 2017-11-16
          • 2015-11-08
          • 1970-01-01
          相关资源
          最近更新 更多