Как получить пользовательскую страну с помощью API-интерфейсов facebook?
Я хочу получить зарегистрированную страну пользователя и вставить ее в 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;
}
Спасибо!
Ответы
Ответ 1
Я считаю, что параметр, который вы ищете, location
вместо страны.
/me?fields=name,email,gender,age_range,picture,location
Чтобы запросить эти данные, вам понадобятся ваши пользователи, чтобы предоставить вам user_location
.
Это даст вам значение поля, отправленного пользователем - обратите внимание, что этот параметр может не всегда заполняться, поскольку он зависит от того, действительно ли пользователь отправляет эту информацию - если они не предоставили его - вы не сможете его получить.
Объект будет выглядеть примерно так:
"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
Чтобы завершить то, что Lix сказал:
Вы можете сделать это только с одним вызовом Graph API, вызвав
/me?fields=name,email,gender,age_range,picture,location{location}
Действительно, объект местоположения под пользовательским объектом представляет собой объект страницы, который имеет Объект местоположения.
Итак, это даст вам что-то вроде этого:
"location": {
"location": {
"city": "Ramat Gan",
"country": "Israel",
"latitude": 32.0833,
"longitude": 34.8167,
"zip": "<<not-applicable>>"
}
}
Это позволяет избежать двойного вызова Graph API.
Ответ 3
v2.11 запрос:
/me?fields=hometown,location
Разрешение:
user_hometown
user_location
результат:
{
"hometown": {
"id": "XXXXREDACTED",
"name": "Manila, Philippines"
},
"location": {
"id": "XXXXREDACTED",
"name": "Manila, Philippines"
},
"id": "XXXXREDACTED"
}