FQL-запрос для поиска публичного мероприятия

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

Видимо, кому-то это как-то удается: http://elmcity.info/fb_events?location=tokyo< /а>


person Claus    schedule 04.06.2012    source источник
comment
возможный дубликат Получить список событий на основе местоположения   -  person DMCS    schedule 05.06.2012
comment
В этом вопросе вы найдете свой ответ. facebook.stackoverflow.com/questions/ 9339936/ Надеюсь, он все еще работает!!   -  person DMCS    schedule 05.06.2012


Ответы (4)


Действительно можно получать события, используя «поиск» на основе местоположения. Для этого вам понадобятся координаты долготы и широты местоположения, которое вы хотите найти, и 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;

Сама хитрость заключается в использовании места встречи.долгота и места встречи.широта. Чтобы получить события из города, просто получите координаты города и настройте смещение в соответствии с вашими потребностями. Если вы не знаете, как использовать FQL, загляните в Facebook PHP SDK.

person DMCS    schedule 05.06.2012

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

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

Похоже, что сайт, на который делается ссылка, запрашивает event.description наличие входной строки. Запросите «ИКЕА», и вы получите множество результатов. Определенно не гео-поиск. (Кстати, исходный код сайта находится на GitHub).

Изменить:

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

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

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

person cpilko    schedule 04.06.2012
comment
Вы совершенно правы. Я действительно не понимаю, зачем ограничивать исследование полем описания. Этот API был бы намного мощнее! - person Claus; 04.06.2012
comment
facebook.stackoverflow.com/questions/ 9339936/ имеет хороший способ получить события по местоположению. Надеюсь еще работает!! - person DMCS; 05.06.2012
comment
@DMCS Это хорошо. Я должен дать ему попробовать, чтобы увидеть, если он все еще работает. - person cpilko; 05.06.2012
comment
Я пробовал: 1) Это мое впечатление, или это очень медленно? 2) это дает вам возможность получить только событие, на которое собираются ваши друзья. Это весьма ограничивает. В любом случае лучше, чем ничего - person Claus; 05.06.2012
comment
@cpilko, вы можете опубликовать пример, как только что-то начнет работать? Я сделаю то же самое, если смогу сделать это правильно. Спасибо! - person Claus; 06.06.2012

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

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'
person Ameen Maheen    schedule 24.07.2015

Я считаю, что в 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 и пока не нашел.

person Gilad    schedule 06.09.2012