如何使用访问令牌获取Facebook用户的电子邮件地址和一些基本信息

6
我有以下代码,想要获取Facebook用户的电子邮件地址和其他详细信息。 这是我所做的代码。
FB.login(function(response) {
      if (response.authResponse) {
         //updateUserInfo(fb_id);
        console.log(response.authResponse);
        updateUserInfo(response.authResponse.userID);
        $.ajax({
           dataType: "json",
           url: 'http://graph.facebook.com/'+response.authResponse.userID+'/ fields=id,name,birthday,email,gender,hometown,location',
           success: function(data){
                fb_data = data;
               console.log(data);
            }});
 },{scope:'email'});

我无法获取以下细节:

  1. 生日
  2. 电子邮件
  3. 位置
  4. 家乡

但是,我能够获得名字和ID。

如果我应该使用访问令牌,我该如何将其放入查询中?电子邮件地址是关键信息,因为我的系统通过电子邮件地址识别用户。


1
如果用户请求他们自己的信息,则需要授予应用程序访问电子邮件、用户生日、用户家乡和用户位置的权限。如果用户请求他们朋友的信息,则需要授予访问朋友生日、朋友家乡和朋友位置的权限。要访问朋友的电子邮件,有一个已知的错误,可以在https://dev59.com/WmQn5IYBdhLWcg3wto9W中讨论。 - 林果皞
2个回答

3
你需要从用户那里获得以下权限才能获取Facebook的数据:
  1. user_birthday 用于生日信息
  2. email 用于邮箱信息
  3. user_location 用于位置信息
  4. user_hometown 用于家乡信息
你可以查看此处此处获取其他权限和用途。
然后,用户点击你的登录按钮并授权你的应用程序后,你将获得访问令牌。

2
你不必在FB.login后使用ajax调用,可以使用FB.api 文档,这将确保您在登录时获取的访问令牌(需要电子邮件访问)用于访问数据。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接