Facebook仅返回用户的名称和ID

问题描述 投票:11回答:4

我正在尝试使用我的Facebook帐户登录我的网站,但Facebook仅提供名称和ID,但不足以登录用户。在我获得诸如姓名,姓名,电子邮件等完整信息之前。

Facebook提供的数据现在:

stdClass Object
(
    [name] => FName LName
    [id] => 236189327864097
)

我正在使用Oauth v2.0通过Facebook登录用户到我的网站。

php facebook facebook-graph-api login oauth
4个回答
15
投票

看起来你正在使用Graph API的v2.4。看到

声明字段 要尝试提高移动网络的性能,v2.4中的节点和边缘要求您明确请求GET请求所需的字段。例如,GET /v2.4/me/feed默认不再包含喜欢和评论,但GET /v2.4/me/feed?fields=comments,likes将返回数据。有关更多详细信息,请参阅有关如何请求特定字段的文档。

要了解如何使用所谓的字段扩展,请看一下


8
投票
FB.api('/me?fields=first_name, last_name, picture, email', function(response) {
          console.log(response);
          document.getElementById('status').innerHTML =
            'Thanks for logging in, ' + response.first_name + '!';
        });

这对我有用。在FB.api请求中/ me?fields =之后传递电子邮件。


1
投票

如果您使用PHP,还需要阅读本文:

https://developers.facebook.com/docs/facebook-login/permissions/v2.4

基本上,Fb说关于email

请注意,即使您申请电子邮件权限,也不能保证您会收到电子邮件地址。例如,如果有人使用电话号码而不是电子邮件地址注册Facebook,则电子邮件字段可能为空。


1
投票

通过参数传递您要查找的字段:

var request = new OAuth2Request("GET", new Uri("https://graph.facebook.com/me?fields=birthday,email,name,id"), null, eventArgs.Account);
© www.soinside.com 2019 - 2024. All rights reserved.