Java 使用RestTemplate Facebook Graph API响应电子邮件字段是间歇性的。但是,通过一次人工呼叫,它就出现了

Java 使用RestTemplate Facebook Graph API响应电子邮件字段是间歇性的。但是,通过一次人工呼叫,它就出现了,java,json,facebook,spring,facebook-graph-api,Java,Json,Facebook,Spring,Facebook Graph Api,我正在使用Java和Spring开发一个REST服务,该服务连接到Facebook并获取一些用户数据,如姓名和最重要的:电子邮件 该服务有一个方法,该方法需要Facebook uid和访问令牌,然后通过调用获取用户信息 以及解析json响应 问题是有些用户的回复中没有电子邮件。。我知道有些facebook用户没有设置电子邮件,因为他们使用电话号码创建帐户。这不是问题所在 当我使用RestTemplate类时,电子邮件不在响应中,但当我使用Graph API Explorer工具()时,电子邮件在

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

该服务有一个方法,该方法需要Facebook uid和访问令牌,然后通过调用获取用户信息 以及解析json响应

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

当我使用RestTemplate类时,电子邮件不在响应中,但当我使用Graph API Explorer工具()时,电子邮件在响应中


使用RestTemplate:

使用RestTemplate的响应:

使用图形API浏览器进行响应

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

在这里寻找答案,我无意中发现了这个问题,但它与我的问题不同


我希望我说清楚了,你能帮我解决这个问题


非常感谢

您是否尝试在图形url上使用curl或wget,而不仅仅是使用graph api资源管理器?可能值得检查原始api响应,看看它是否始终丢失电子邮件,或者是否有其他错误。嗨!我们尝试使用curl,并且响应有email字段。。此外,我们意识到,在2到3次重试后,我们会得到正确的回复(通过电子邮件)。我已经干涸了所有的选择:(你在curl中也发现了不一致吗?你试过不止一次了吗?在考虑restclient之前,只是试图排除与API相关的问题。我在github()上找到了这篇文章)似乎其他人也有这个问题,而且是最近的问题。这不是FB Graph API第一次不完全一致:)我们已经尝试了近5次,直到访问令牌过期,并且响应始终正常。我们正在通过一个asyc电话解决这个问题,直到我们得到facebook的正确回应。如果回复总是相同的,我们假设用户没有电子邮件。可能是重复的
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);
{
  "id": "xxxxxxxx", 
  "last_name": "Avila", 
  "name": "Diego Emanuel Avila"
}
{
  "id": "xxxxxxxx", 
  "email": "xxxxxx@gmail.com"
  "last_name": "Avila", 
  "name": "Diego Emanuel Avila"
}