Facebook FQL: получите чеки в пределах досягаемости - PullRequest
4 голосов
/ 09 марта 2011

Есть ли способ использовать FQL для выбора всех моих чеков друзей, которые находятся в диапазоне указанного местоположения? Я могу использовать FQL, чтобы вернуть координаты регистрации моих друзей:

https://api.facebook.com/method/fql.query?access_token={0}&query=SELECT coords FROM checkin WHERE author_uid IN (SELECT uid2 FROM friend WHERE uid1 = me())

но как я могу добавить к вышеуказанному запросу, чтобы сделать что-то вроде ...

Where coords Within 10 miles of [(New York City, NY) | (long, lat) | (user.current_location)]

Любая помощь будет принята с благодарностью. Заранее спасибо.

РЕДАКТИРОВАТЬ (3/9 15:05 вечера):

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

Непосредственная проблема заключается в том, что если у кого-то есть несколько сотен друзей и возвращаются все чекины для каждого друга, это слишком много данных для работы.

Подробная информация о результате, который я ищу, состоит в том, чтобы начать со всех моих друзей и получить 10 лучших мест (на основе самой высокой частоты идентификатора места регистрации), в которых они зарегистрировались в течение последних X дней, которые находятся на расстоянии Y от текущего местоположения пользователей в Facebook, и где страница местоположения попадает в определенную категорию, например бар.

Это сценарий, с которым я имею дело, и я надеюсь, что дополнительная информация, которую я добавил, не усложнит мой первоначальный вопрос. Спасибо!

1 Ответ

10 голосов
/ 14 ноября 2011

Итак, есть некоторая недокументированная функция под названием distance (), которая может вам помочь, хотя она не очень хорошо работает (особенно если учесть, что она ограничена радиусом 50 км):

SELECT coords, author_uid, tagged_uids, target_id, message FROM checkin WHERE target_id IN
(SELECT page_id FROM place WHERE distance(latitude, longitude, "37.75377496892", "-122.42077080676") < 50000)

Макс. Составляет 50 000 метров , который является выходной единицей функции FQL (явно недокументированной) distance.

https://developers.facebook.com/docs/reference/fql/checkin/ https://developers.facebook.com/docs/reference/fql/place

...