Facebook Graph API v2.4 不返回扩展用户数据

Posted

技术标签:

【中文标题】Facebook Graph API v2.4 不返回扩展用户数据【英文标题】:Facebook Graph API v2.4 not returning extended user data 【发布时间】:2015-07-12 15:43:40 【问题描述】:

我正在开发一个使用 Facebook Graph API 来实现 FB 身份验证集成的应用。作为其中的一部分,我们从 Facebook 获取用户的电子邮件、名字和姓氏,以便我们可以将电子邮件地址与数据库中的现有用户进行匹配,或者创建一个失败的新用户。

在 Graph 版本 2.3 中,我们可以通过以下请求轻松获取此信息,您可以在 Graph API Explorer 中测试运行,假设我们提供了具有权限 user_about_meemail 的访问令牌:

Request: https://graph.facebook.com/v2.4/10154900171335022
Response: 

  "id": "123456",
  "email": "buckeroo.banzai@gmail.com",
  "first_name": "Buckeroo",
  "gender": "male",
  "last_name": "Banzai",
  "link": "https://www.facebook.com/app_scoped_user_id/123456/",
  "locale": "en_US",
  "name": "Buckeroo Banzai",
  "timezone": -4,
  "updated_time": "2015-06-06T07:21:23+0000",
  "verified": true

但是当我切换到 API v2.4 并尝试相同的请求时,即使我启用所有权限,我也会得到以下无用的响应:


  "name": "Topher Hunt",
  "id": "10154900171335022"

这与 FB 的 API 文档不匹配,这表明完整的数据(包括电子邮件)仍应像在 v2.3 中一样返回。

有没有人在使用 FB Graph v2.4 时成功找到了获取用户电子邮件地址的方法?任何解决方法?也许我应该推迟升级?

提前致谢!

【问题讨论】:

【参考方案1】:

您应该使用相关的权限关键字传递“字段”参数。请注意,自 Graph API 2.2 及以上版本发布以来,用户可以拒绝特定数据字段的权限。

除此之外,如果用户注册了电话号码,则电子邮件字段将返回为 NULL。

要通过 HTTP 访问用户的电子邮件和关于我的信息,以下是一个示例:

https://graph.facebook.com/v2.4/10154900171335022?fields=email,about

javascript 示例。

     FB.login(function(response) 
               if(response.authResponse)  //If the user grants permission
                         FB.api('/me?fields=email,about', function(response) 
                           console.log(response.email);
                           console.log(reponse.about);
                         );
                else 
                                // User cancelled login or did not fully authorize.
               
    , 
        scope: 'email,user_about_me'
    );

【讨论】:

我的 app-id/scores 有完全相同的问题,我应该提供哪些字段?谢谢!

以上是关于Facebook Graph API v2.4 不返回扩展用户数据的主要内容,如果未能解决你的问题,请参考以下文章

Facebook JS SDK 的 FB.api('/me') 方法不返回我在 Graph API v2.4+ 中期望的字段

如何使用新的 facebook graph api v2.4 从页面获取事件

Facebook Graph API Group Feed没有显示v2.3之后的帖子

如何使用 Facebook Graph API 获取群组视频列表?

我正在尝试使用 graph api v2.4 获取我的朋友姓名和 ID,但数据返回空:

如何使用 Facebook Graph API 从城市中查找所有事件