-1

Я пытаюсь получить события в Facebook, которые имеют определенную фразу или описание в них. Я бы хотел, чтобы результаты не были отфильтрованы или ограничены, поскольку фраза довольно специфична.Получение всех событий с учетом определенных критериев фильтрации на Facebook

В качестве примера, фраза, которую я ищу, это «UMvC3» (сокращение от Ultimate Marvel vs. Capcom 3).

То есть, я мог бы выполнить запрос FQL (и впоследствии обогащают с вызовом к API Graph, вроде так):

select eid from event where contains("umvc3") and start_time >= now() 
order by update_time desc 

Это даст мне предстоящие события с «umvc3» в них, а также как только одни происходят в будущем (меня не интересуют прошлые события).

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

https://www.facebook.com/events/595137740538545/

Это явно имеет «umvc3» в тексте описания.

Я могу выполнить поиск с использованием Graph API, но это также не возвращает результат. Кроме того, я не могу фильтровать с помощью Graph API на start_time или заказывать результаты таким образом, чтобы я мог прекратить обработку набора результатов, как только я доберусь до определенной точки.

Наконец, есть API-интерфейс для общедоступных каналов, который даст мне весь firehose (который, к сожалению, не фильтруется, как, например, Twitter), поэтому мне придется фильтровать в реальном времени, что может быть почти невозможно ,

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

Примечание: Я использую access_token, предоставленный графическим проводником в разделе инструментов.

ответ

4

Столбец descriptionEvent Таблица FQL не является индексируемой, поэтому поиск по фристайлу по индексируемым столбцам не даст никакого результата.

Результаты, которые вы видите, запустив запрос, который вы предлагаете, дают только события, где «umvc3» находится в столбце name, который является индексируемым.

Единственный вариант - попросить facebook для полнотекстового индексирования этой колонки, которая, по-видимому, не произойдет. Они, конечно же, не будут открывать какой-либо столбец для использования предложения типа LIKE, поскольку выполнение запроса займет много времени.

И ответ от Facebook разработчика: https://stackoverflow.com/a/5824449/334522

+0

Так в основном, FQL может фильтровать только на 'колонке name' и' q' параметр в API Graph неоднозначно? – casperOne

+0

API поиска с параметром 'q' - это еще один более приятный уровень над FQL. Он не добавляет никаких дополнительных функций, и он дает только общие запросы FQL, такие как * найти все события, которые говорят о «чем-то» *. В основном поощрять легкую интеграцию с facebook в приложениях. Таким образом, это не меняет того факта, что вы не можете искать в текстовом контенте описания. Запустив '/ search? Limit = 1000 & type = event & q = umvc3', вы получите события, содержащие' umvc3' в поле 'name' (или очень близко к этой строке). – sromku

+0

Даже указав поле 'description', выполните следующие действия:' search?limit = 1000 & type = event & q = umvc3 & fields = description', поисковый запрос по-прежнему будет выполнять сопоставление строки только с индексируемыми столбцами. – sromku

Смежные вопросы