2009-12-05 3 views
0

Я пытаюсь написать запрос на Facebook, который будет возвращать все комментарии, опубликованные пользователем на его друзей,Facebook Комментарии Граф

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

Любые предложения, пожалуйста?

С благодарностью,

Wineshtain

ответ

0

Косвенный путь для комментариев потока будет что-то вроде

select * from comments where fromid = <my_id> and object_id in (
    select post_id from stream where sourceid in (
     select uid1 from friend where uid2 = <my_id>)) 

для фотографий, заменить средний запрос с

SELECT pid FROM photo WHERE aid IN (SELECT aid FROM album WHERE owner IN (... 

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

+0

Проблема, с которой я столкнулся с использованием этого метода, - это предел количества возвращаемых результатов. Поскольку мы получаем список друзей и их сообщения, которые легко доходят до конечных результатов, чтобы вернуться до того, как «дойдут» до сообщений, на которых фактически прокомментировал что-либо. поэтому возвращаемый результат всегда равен 0. (ну 99% от нуля, если только ваш пользователь не комментирует все или только последние сообщения). В любом случае, чтобы решить это? –

+1

Ваша цель «все комментарии, отправленные пользователем» невозможна из-за усечения потока, основанного на некоторых не опубликованных критериях (активность «размер?»?). Данных просто нет. Чтобы преодолеть ограничение по результатам, вам необходимо сузить область поиска и выполнить несколько запросов. Я предлагаю кэшировать идентификаторы друзей и ходить по ним одновременно. Я также предлагаю ограничение посты возвращается - 1) actor_id = (должность, созданного другом) 2) created_time> lastweek (Последние сообщения) 3) с использованием LIMIT, чтобы предотвратить переполнение Наконец, вы можете исследовать многоквартирный – Stevko

+0

Спасибо !!!! Отличные предложения! –

0

Я не верю, что вы можете сделать это в прямом порядке, как вы описываете. Таблицы FQL обычно индексируются только по ограниченным критериям (по соображениям эффективности, я уверен). В случае Comments FQL Table вы можете выбирать только комментарии через идентификатор сообщения или xid.

К сожалению, это означает, что вы должны знать объекты, которые пользователь прокомментировал, прежде чем вы сможете получить комментарии к нему. Вы должны были предварительно выбрать все сообщения, фотографии и т. Д., Которые хотели бы получить комментарии, прежде чем вы сможете их получить.

+0

Спасибо, что ответили! Любые советы о том, как это сделать косвенно? Как собрать эти посты/фотографии? –

+0

Я не уверен, есть ли способ или нет. Я никогда не делал ничего подобного, поэтому я, вероятно, начну с чтения таблиц API и таблиц FQL для других объектов (сообщений, фотографий и т. Д.) И просмотра их индексирования и того, что потребуется, чтобы получить некоторые из их. – zombat

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