Facebook - получить идентификатор местоположения / места через название местоположения

Я могу вернуть данные о местоположении, отправив запрос через API графика с идентификатором местоположения, однако я хочу добиться обратного - эффективно найти идентификатор местоположения, отправив запрос, содержащий имя местоположения (город, штат и т. д.) . Это возможно?


person BrynJ    schedule 18.03.2011    source источник


Ответы (3)


Это возможно при нескольких различных подходах. Вы можете выполнить поиск, используя длинные/широтные позиции, и указать название места в запросе. Этот поиск будет искать только места.

Сделайте следующее

https://graph.facebook.com/search?q=ritual&type=place¢er=37.76,-122.427&distance=1000&access_token=mytoken.

Это вернет ритуальный кофе.

Другой способ — выполнить поиск по страницам Facebook, используя следующий https://graph.facebook.com/search?q=ritual%20coffee&type=page&access_token=mytoken

Этот способ более сложен, так как вам, очевидно, потребуется более детально разобрать список.

person Steve    schedule 31.03.2011
comment
Я не могу найти ссылку на документ для этой конечной точки. Является ли это решение своего рода черным ящиком? - person Abel Callejo; 08.03.2015

Вы также можете использовать место sdk из facebook:

compile group: 'com.facebook.android', name: 'facebook-places', version: '4.30.0' // For latest version, see https://developers.facebook.com/docs/android/

а потом:

PlaceSearchRequestParams.Builder builder = new PlaceSearchRequestParams.Builder();

builder.setSearchText("Cafe");
builder.setDistance(1000); // 1,000 meter maximum distance.
builder.setLimit(10);
builder.addField(PlaceFields.ID);

GraphRequest request = PlaceManager.newPlaceSearchRequestForLocation(builder.build());

request.setCallback(new GraphRequest.Callback() {
    @Override
    public void onCompleted(GraphResponse response) {
        // Handle the response. The returned ID in JSON is the placeId.
    }

request.executeAsync();
person logerom    schedule 26.01.2018
comment
Подробнее здесь: developers.facebook.com/docs/places/android/search - person ban-geoengineering; 25.02.2018

Если я правильно понял ваш вопрос, вы можете использовать fql: https://api.facebook.com/method/fql.query?query=QUERY, где запрос должен быть примерно таким: выберите page_id из места, где name = ;

Вот страница для справки: http://developers.facebook.com/docs/reference/fql/place/

person Elad Lachmi    schedule 27.03.2011
comment
Вы также можете использовать php sdk или JS sdk для того же эффекта. - person Elad Lachmi; 27.03.2011
comment
Спасибо за ответ Элад. К сожалению, это не рабочее решение - я получаю эту ошибку: Ваше заявление не индексируется. Предложение WHERE должно содержать индексируемый столбец. Такие столбцы помечены * в таблицах, связанных с developers.facebook.com/docs/reference/fql. . Глядя на страницу FQL Place, на которую вы ссылаетесь, кажется, что page_id - единственный проиндексированный столбец :( - person BrynJ; 27.03.2011
comment
Что ж, тогда я думаю, что в архитектуре facebook для этого нет решения. Теоретически вы можете создать свою собственную базу данных, выбрав * из таблицы places от 1 до чего угодно, но это кажется плохим решением. - person Elad Lachmi; 27.03.2011