1

我正在使用 Java 和 Spring 开发一个 REST 服务,它连接到 Facebook 并获取一些用户数据,如姓名、姓氏和最重要的:电子邮件

该服务有一个需要 Facebook uid 和访问令牌的方法,然后通过调用 https://graph.facebook.com/me/?fields=email,id,last_name,name&access_token=XXXXX 并解析来获取用户信息json响应。

问题是有些用户在回复中没有电子邮件。我知道有些 Facebook 用户没有设置电子邮件,因为他们使用电话号码创建了他们的帐户。这不是这里的问题。

当我使用RestTemplate类时,电子邮件不在响应中,但是当我使用Graph API Explorer工具(https://developers.facebook.com/tools/explorer/)时,电子邮件就在那里。


使用 RestTemplate:

RestTemplate rest = new RestTemplate();
String jsonResponse = rest.getForObject("https://graph.facebook.com/me/?fields=" +  fields + "&access_token=" + accessToken, String.class);

JSONObject o = JSONObject.fromObject(jsonResponse);


使用 RestTemplate 响应:

{
  "id": "xxxxxxxx", 
  "last_name": "Avila", 
  "name": "Diego Emanuel Avila"
}


使用 Graph API Explorer 进行响应

{
  "id": "xxxxxxxx", 
  "email": "xxxxxx@gmail.com"
  "last_name": "Avila", 
  "name": "Diego Emanuel Avila"
}



我不知道问题出在 RestTemplate 类中,还是在 Facebook Graph API 中。我不知道是否必须添加标题或类似的东西,才能从 Facebook 获得正确的响应。

在这里寻找答案,我在 facebook API 中偶然发现了这个间歇性丢失的电子邮件地址,但这与我的问题不同。


我希望我说清楚了,你可以帮助我解决这个问题。

非常感谢!

4

0 回答 0