2015-08-17 52 views
12

我想检索登录的用户国家,并将其插入到一个div。 我成功使用它的用户姓名,性别和年龄范围,但为什么我无法检索国家。 这里是我的代码:如何使用Facebook Graph API检索用户国家?

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

见[链接](HTTP://计算器。 COM /问题/ 27379382 /检索-U ser-country-through-facebook-android-graph-api) – Esty

回答

26

我相信你正在寻找的参数是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" 
} 
+0

完美的作品。感谢您的好解释! – Idan

+0

看看[vchatbot的答案](http://stackoverflow.com/a/32073757/558021),@Idan - 看起来有一种方法可以只对API做出一个请求 - 好得多:P – Lix

+0

在Facebook上获得国家的ISO代码是可行的吗?https://en.wikipedia.org/wiki/ISO_3166-1 – user1253414

40

要完成什么Lix说:

你可以只用一个电话这样做是为了图API,通过调用

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

实际上,用户对象下的位置对象一个Page object,它有一个Location object

那么,这会给你这样的事情:

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

这避免你做一个双重调用图形API。

+1

我们每天都在学习新的东西!好一个! – Lix

+0

'location {location}'对我来说是新的语法 - 我显然没有经历过这么多的事情来观察这些变化 - 请问您可以添加一些关于它的用法的解释吗? – Lix

+0

我很抱歉,但我不明白如何添加更多关于它的用法的解释...有什么你不明白的吗? – vchabot

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" }

相关问题