如何使用Facebook Graph API检索用户所在国家/地区?

时间:2015-08-17 09:09:21

标签: facebook-graph-api

我想检索已登录的用户所在国家/地区,并将其插入到div中。 我成功地使用用户姓名,性别和年龄范围,但有些人为什么我无法检索国家。 这是我的代码:

  function testAPI() {
console.log('Welcome!  Fetching your information.... ');
FB.api('/me?fields=name,email,gender,age_range,picture,country', function (response) {
  document.getElementById('status').innerHTML = response.name + ",";
  document.getElementById('status1').innerHTML = response.gender + ",";
  document.getElementById('status2').innerHTML = (response.age_range.min) + "-" + (response.age_range.min + 1) + " years old";
  document.getElementById('status3').innerHTML = response.country;
}

谢谢!

4 个答案:

答案 0 :(得分:49)

完成Lix所说的内容:

只需调用一次Graph API,即可调用

"location": { "location": { "city": "Ramat Gan", "country": "Israel", "latitude": 32.0833, "longitude": 34.8167, "zip": "<<not-applicable>>" } }

实际上,用户对象下的位置对象是Page object,其Location object

所以,这会给你这样的东西:

arq_saida_unix = arq_saida.replace("\\","/")
subprocess.call("C:\\cygwin64\\bin\\bash \".\\retirarVirgula.sh\\ \""+arq_saida+"\"")

这可以避免您对Graph API进行双重调用。

答案 1 :(得分:29)

我相信您要查找的参数是location而不是国家/地区。

/me?fields=name,email,gender,age_range,picture,location

要查询此数据,您需要用户授予您user_location permission.

这将为您提供用户提交字段的值 - 请注意,此参数可能并不总是填充,因为它取决于用户实际提交此信息 - 如果他们没有提供 - 您将无法检索它

对象看起来像这样:

  "location": {
    "id": "112604772085346",
    "name": "Ramat Gan"
  },

获得位置对象(很可能是一个页面)后,您可以查询该对象以检索国家/地区:

/112604772085346?fields=location

这将为您提供更多信息,包括国家。

{
  "location": {
    "city": "Ramat Gan",
    "country": "Israel",
    "latitude": 32.0833,
    "longitude": 34.8167,
    "zip": "<<not-applicable>>"
  },
  "id": "112604772085346"
}

答案 2 :(得分:0)

v2.11查询:

/me?fields=hometown,location

权限:

user_hometown
user_location

结果:

{
  "hometown": {
    "id": "XXXXREDACTED",
    "name": "Manila, Philippines"
  },
  "location": {
    "id": "XXXXREDACTED",
    "name": "Manila, Philippines"
  },
  "id": "XXXXREDACTED"
}

答案 3 :(得分:0)

Fb API中的字段现在可以连接,因此,有关用户位置的详细信息,您需要:

scope="public_profile,user_location"

fields="name,location{location{country, country_code, city, city_id, latitude, longitude, region, region_id, state, street, name}}"