Ответ 1
Обновлено 2014-07-02
Вы не можете напрямую искать API Facebook для событий рядом с местоположением. Начиная с первоначального ответа на этот вопрос, API-интерфейс Graph затруднил поиск событий.
Elmcity script, на который ссылается OP, выполняет простой поиск ключевого слова в заголовке события. Попробуйте, например, "Ланкастер". Вы получите события, которые имеют слово Lancaster где-то в их метаданных.
Их запрос выглядит примерно так:
https://graph.facebook.com/search?q=lancaster&type=event
Вы также можете искать слово, не основанное на местоположении, в заголовке, например "пикник", а script - события.
Для проблемы фактического поиска событий рядом с местоположением, в текущей итерации поле "место" является только строкой, поэтому оно не имеет отношения к какому-либо месту в Facebook. Выполнение этого запроса ничего не возвращает:
https://graph.facebook.com/madisonsquaregarden/events
https://graph.facebool.com/108424279189115/events
Так что использование пакетного запроса даже не возможно.
В соответствии с документацией FQL представляется лучшим решением. В документации колонка venue.name
индексируется! Легко, правильно?
Неправильно. Когда вы запускаете этот запрос FQL, чтобы найти события в каком-либо месте, например:
SELECT name, start_time, venue FROM event WHERE CONTAINS("madison square garden")
Вы обнаружите, что venue.name
не заполняется.
Пытаемся использовать любые другие варианты, например:
SELECT name, start_time, venue FROM event WHERE venue.id = 108424279189115
Выбрасывает ошибку "выражение не индексируемой".
Итак, при создании "событий Facebook рядом со мной" это приложение-убийца, единственный способ, который кажется возможным, - это поиск общих строк для событий рядом с вами, получение этих событий, а затем отфильтровать нерелевантные события из набора результатов.