我通过php sdk运行以下FQL:
{
"posts" : "SELECT post_id, actor_id, message, type FROM stream WHERE type = '80' AND message != '' AND filter_key in (SELECT filter_key FROM stream_filter WHERE uid='588853265' AND type='newsfeed') AND is_hidden = 0 ORDER BY created_time DESC LIMIT 50",
"actors" : "SELECT uid,name FROM user WHERE uid IN (SELECT actor_id FROM #posts)",
"links" : "SELECT owner, url FROM link WHERE link_id IN (SELECT post_id FROM #posts)"
}
我按照预期获得了帖子和演员的结果,但没有获得链接(结果为空)。我认为问题是链接表使用普通ID,但“stream”中的“posts”以以下格式显示ID:USERID_LINKID。
我玩过substr()和strlen()来让它运转起来没有运气。
答案 0 :(得分:1)
似乎没有办法从流帖中获取link_id
。您的查询是获取帖子的ID,但不是链接。
但是,我认为你不需要它。摆脱#links
子查询,并将attachment
添加到SELECT
子查询中的#posts
语句中。您可以在attachment->media->url
获取链接网址。
另一个批评:您可能希望为#actors
添加其他子查询。 actor_id
表返回的stream
可以是用户,页面或组。您的FQL仅解析用户。对于按组和页面发布的链接,您最终会得到未知ID。