使用FQL将新闻源过滤为特定类型

时间:2011-09-19 00:16:33

标签: facebook facebook-graph-api video facebook-fql readonly

我正在尝试为发送给用户新闻源的特定类型的状态提交查询,其中type = video。我基本上想要为用户发布所有视频,包括那些不是由FB托管的视频(否则我会提交视频查询)。如果我能让FB除了视频之外什么都不返回,我想要它,但我当然看不到解决方案。我没有看到返回的查询甚至有一个包含此信息的字段,因此我可以过滤返回的信息。流表中是否有任何字段可以告诉我帖子的类型?

这是我查询的初始起点:

SELECT post_id, from, name, source, link, picture, updated_time, comments 
FROM stream WHERE filter_key in (SELECT filter_key FROM stream_filter WHERE uid=me() 
AND type='newsfeed') AND is_hidden = 0

1 个答案:

答案 0 :(得分:1)

您可以为流设置类型(请参阅ref),但视频( type = 128 )将仅返回上传的视频。

SELECT post_id, source_id, actor_id, target_id, message, attachment, permalink, type 
FROM stream 
WHERE source_id IN (SELECT target_id
    FROM connection
    WHERE source_id = me() AND is_following = 1) 
AND is_hidden = 0 
AND type = 128

这与使用图表api(例如js sdk:FB.api('/me/home', function(response) {} ))相矛盾,其中type: 'video'被提供给附加的视频链接(例如YouTube)

然而, attachment.media [0] 字段将视频链接标识为type: video;但这是一个数组(我不知道如何在其中查询)所以我检查了链接是否包含对youtube的引用(youtube链接可以是长格式或缩短, youtu.be

SELECT post_id, source_id, actor_id, target_id, message, attachment, permalink, type 
FROM stream 
WHERE source_id IN (SELECT target_id
    FROM connection
    WHERE source_id=me() AND is_following=1) 
AND is_hidden = 0 
AND type = 80 
AND strpos(attachment.href, "youtu") >= 0