我一直在使用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 ,但我正在尝试登录的用户:
TL; DR
通过Facebook app v2.3对用户进行身份验证会返回他们的电子邮件地址,但是新的Facebook应用程序v2.9 - 却没有。我使用的PHP SDK版本:4。
知道Facebook方面可能会有什么变化吗?我是否必须升级SDK?
答案 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');