Facebook仅返回用户的名称和ID

时间:2015-07-29 06:03:39

标签: php facebook facebook-graph-api login oauth

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

Facebook现在提供的数据:

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

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

4 个答案:

答案 0 :(得分:15)

看起来您正在使用Graph API的v2.4。参见

  

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

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

答案 1 :(得分: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 + '!';
        });

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

答案 2 :(得分:1)

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

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

基本上,Fb说email

  

请注意,即使您申请电子邮件权限,也不能保证   你会得到一个电子邮件地址。例如,如果有人注册了   Facebook上有电话号码而不是电子邮件地址,电子邮件   字段可能是空的。

答案 3 :(得分:1)

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

var request = new OAuth2Request("GET", new Uri("https://graph.facebook.com/me?fields=birthday,email,name,id"), null, eventArgs.Account);