我想检索已登录的用户所在国家/地区,并将其插入到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;
}
谢谢!
答案 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}}"