Я разрабатываю приложение fb, в котором я хочу предоставить пользователям временную строку, но мне нужно исключить такие истории, как «Пользователь любит фотографию», «комменты на фотографии друзей». Как я фильтрую и исключаю эти типы историй
Вы можете отфильтровать эти сообщения , глядя на наличие story
или ключевого слова story_tags
поскольку их нет в сообщениях, сделанных пользователем.
Цитируя из документации описание ключевого слова story
Тексты историй, не преднамеренно генерируемых пользователями, например, созданные, когда два пользователя становятся друзьями; вы должны иметь включенную миграцию в разделе «Включить последние действия» в ваше приложение, чтобы получить эти истории
Или вы можете попробовать поток FQL, как это
select message from stream where source_id=me() and type in (46,56,80,56,128,247) and filter_key in (select filter_key from stream_filter where uid=me())
которые могут помочь вам сократить количество сообщений до того, что вы желаете.
Обновить
Возможно, вам не потребуется уменьшать результат с помощью поля type
проверенного с помощью 林果 皞, поэтому запрос сводится к
select message from stream where source_id=me() AND filter_key in (select filter_key from stream_filter where uid=me())
Используйте fql, поле «type» имеет значение «null», если в описании есть что-то вроде «A follow B», «A нравится Intel». «Прокомментировал его собственную ссылку». … и т. Д .:
SELECT created_time,description,likes,message,post_id FROM stream WHERE source_id=me() AND type!="" AND created_time<=now() LIMIT 50
Обновление: я нашел, что мой запрос не исключает публикации на странице, ответ Anvesh Saxena правильный, чем мой.
выберите сообщение из потока где source_id = me () И filter_key in (выберите filter_key из stream_filter, где uid = me ())
Обновление Wed may 15 2013: Кажется, у нас проблемы, потому что у другой filter_key может быть один и тот же post_id. Например, некоторая ссылка может отображаться как в «nf» filter_key, так и в ссылках filter_key «app_2309869772»
Обновление: я делаю некоторые исследования и, наконец, выхожу из этого запроса (заменить 2 «me ()» на другой user_id тоже работает):
SELECT viewer_id, app_id, target_id, post_id, created_time, message, type, permalink FROM stream WHERE source_id = me () AND created_time <= now () AND ((тип IN (46,80,128,237,247)) ИЛИ (type = "" AND target_id = me ())) LIMIT 150
Этот запрос API FQL сравнивается с веб-браузером (я тестировал с нажатием «Все истории» на моей стене):
Преимущество:
Недостаток:
Пожалуйста, сообщите мне, если у кого-то есть лучший запрос
ура
Все данные json, которые вы получаете из Graph api при запросе пользователей, имеют тип элемента, который может быть, например, Link, comment, status …. Выберите те, которые вам нужны.