Можно ли как-то получить geonameIds ответа API-метки facebook-графа user_tagged? - PullRequest
0 голосов
/ 12 января 2019

Мы в основном используем geonames и хотели бы получить geonameIds города, который возвращается в ответе user_tagged place на facebook-graph-api. Есть идеи, как это сделать?

Geonames имеет cities api (http://www.geonames.org/export/JSON-webservices.html#citiesJSON),, но ему нужен регион для поиска городов. У меня есть только lat & lng значения определенной точки. Я попытался расширить эти lat & lng значения для создания регион, но geonames city api возвращает города в соответствии с логикой, которую они предоставляют, например, капиталы идут первыми и т. д. В документации говорится:

// geonames documentation
cities api results are ordered by relevancy (capital/population). 
Placenames close together are filterered out and only the larger name is 
included in the resulting list.

Итак, это не сработало. У вас есть какие-нибудь предложения?

const getFacebookTaggedPlaces = async (user, dispatch) => {
  let providerId = user.additionalUserInfo.profile.id;
  let accessToken = user.credential.accessToken;
  let apicall = await fetch(
    `https://graph.facebook.com/v3.2/${providerId}? 
     fields=tagged_places&access_token=${accessToken}`
  );
  return apicall.json();
};

Пример ответа на запрос графика:

created_time: "2019-01-06T17:29:42+0000"
id: "103284597428186"
place:
    id: "107070695995672"
    location:
        latitude: 40.758358162265
        longitude: -73.986325268733
name: "New York City Times Square"

Это соответствующий ответ geonames, который мы ожидаем.

countrycode: "US"
fcl: "P"
fclName: "city, village,..."
fcode: "PPL"
fcodeName: "populated place"
geonameId: 5128581
lat: 40.7142691
lng: -74.0059729
name: "New York"
population: 8175133
toponymName: "New York City"
wikipedia: "en.wikipedia.org/wiki/New_York_City"
...