与Facebook app v2.9一起使用的Facebook PHP SDK v4不会返回用户的电子邮件等等

时间:2017-04-25 14:04:43

标签: php facebook facebook-graph-api

我一直在使用Facebook JS SDK与 PHP SDK v4 结合使用来通过Facebook验证用户身份。我一直在使用的Facebook应用程序版本为 2.3

现在,我需要为另一个站点创建一个新的FB应用程序 - 新创建的FB应用程序的当前版本是 2.9 。当我使用相同的代码(使用PHP SDK v4)时,突然之间,我无法获得经过身份验证的用户的电子邮件地址,即使我仍然可以在切换到旧的FB应用程序时执行此操作。此外,2.9应用程序的响应中只有2个属性(id和全名),而2.3应用程序提供更多信息。

我看到 this post ,但我正在尝试登录的用户:

  • 已授予Facebook应用程序的所有权限,
  • 在Facebook上注册了电子邮件(不是电话号码),
  • 验证了他们的电子邮件地址。

TL; DR

通过Facebook app v2.3对用户进行身份验证会返回他们的电子邮件地址,但是新的Facebook应用程序v2.9 - 却没有。我使用的PHP SDK版本:4。

知道Facebook方面可能会有什么变化吗?我是否必须升级SDK?

1 个答案:

答案 0 :(得分:2)

自v2.4起,您必须在请求中指定您要查找的字段。对于所有不同的API调用,不仅仅是用户。

  

过去,Graph API调用的响应返回了一组默认值   领域。为了减少有效载荷大小并改善移动设备的延迟   网络,我们减少了返回的默认字段的数量   大多数Graph API调用。在v2.4中,您需要以声明方式列出   您的电话的响应字段。

提示:如果您想拥有所有可用字段的列表,则需要执行以下查询:

$facebook->api('/me?metadata=1');

然后你必须做这样的事情:

$facebook->api('/me?fields=email,first_name,last_name');