2

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

Видимо, кто-то может это сделать, как-то: http://elmcity.info/fb_events?location=tokyo

+0

возможно дубликат [Получить список событий на основе местоположения] (HTTP://facebook.stackoverflow.com/questions/9339936/get-event-list-based-on-location) – DMCS

+0

Вы найдете ответ в этом вопросе. http://facebook.stackoverflow.com/questions/9339936/get-event-list-based-on-location Надеюсь, что он все еще работает !! – DMCS

ответ

5

Возможно действительно получать события, используя поиск по местоположению «поиск» Для этого вам понадобятся координаты долготы и широты местоположения, которые вы хотите найти, и access_token с разрешением user_events (я думаю, вы также можете использовать общественный поиск)

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

$lat = "40"; 
$long = "30"; 

// using offset gives us a "square" on the map from where to search the events 
$offset = 0.4; 

$events = 'SELECT pic_big, name, venue, location, start_time, eid FROM event WHERE eid IN (SELECT eid FROM event_member WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) AND start_time > '. $created_time .' OR uid = me()) AND start_time > '. $created_time .' AND venue.longitude < \''. ($long+$offset) .'\' AND venue.latitude < \''. ($lat+$offset) .'\' AND venue.longitude > \''. ($long-$offset) .'\' AND venue.latitude > \''. ($lat-$offset) .'\' ORDER BY start_time ASC '. $limit; 

Хитрости сам лежит в venue.longitude и venue.latitude Useage. Чтобы получить события из города, просто получите координаты города и настройте смещение в соответствии с вашими потребностями. Если вы не знаете, как использовать FQL пожалуйста, смотрите в Facebook PHP SDK

2

Я сейчас борюсь с этой же проблемой. Это не представляется возможным. Есть несколько проблем, которые я вижу:

  • расположение полей не для поиска в page или place таблиц,
  • путь места событий заселена противоречива: См this page's events for an example. (Я лично заселен большинство из них. Этих изменений FB, а не пользователь ошибки.),
  • FQL не имеет AS заявления для запроса на основе результата вычисления и
  • Facebook ограничивает количество элементов, возвращенное по запросу к некоторому довольно низкому значению.

Что, по-видимому, представляет собой запрос event.description на наличие входной строки. Запрос «IKEA», и вы получите много результатов. Определенно, это не гео-поиск. (BTW, исходный код сайта находится на GitHub).

Edit:

Хорошо, я был неправ. Facebook выставляет метод поиска, но только в Graph API. Используя batch request функциональность, можно выполнить ряд запросов:

  • Найти все place записи на расстоянии (в метрах) от известного Шир /. График api принимает q=* для строки поиска, которая возвращает все места.
  • Запрос event, чтобы найти все мероприятия в местах, указанных выше.

Я собираюсь поиграть с этим. Я снова обновлю этот пост, так как лучше создаю этот код.

+0

Ты совершенно прав. Я действительно не понимаю, зачем ограничивать исследование полем описания. Этот API будет намного мощнее! – Claus

+2

http://facebook.stackoverflow.com/questions/9339936/get-event-list-based-on-location имеет хороший способ получить события по местоположению. Надеюсь, он все еще работает !! – DMCS

+0

@DMCS Это хорошо. Я должен попросить его посмотреть, все ли работает. – cpilko

0

Я считаю, что в http://elmcity.info/fb_events?location=tokyo они на самом деле не ищут событий в Токио, они просто выполнили запрос, как этот

https://graph.facebook.com/search?type=event&q=tokyo

(требуется маркер доступа см https://developers.facebook.com/tools/explorer?method=GET&path=search%3Ftype%3Devent%26q%3Dhaifa)

Обратите внимание, что этот URL также работает http://elmcity.info/fb_events?location=sport

Я также ищу способ получить публичные события, используя fql, и до сих пор я их не нашел.

1

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

SELECT eid,name,description,venue,creator,location,ticket_uri,start_time, eid,host,not_replied_count,pic_square,pic_big,unsure_count,attending_count,declined_count,all_members_count FROM event WHERE start_time > now() AND CONTAINS("your location name") AND privacy='open' 
Смежные вопросы