0

我正在通过 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,但我的“流”中的“帖子”以以下格式显示 ID:USERID_LINKID。

我玩过 substr() 和 strlen() 来让它工作但没有运气。

4

1 回答 1

1

似乎没有办法link_id从流帖子中获取。您的查询正在获取帖子的 ID,但不是链接。

但是,我认为您不需要它。摆脱#links子查询并添加attachment到子查询中的SELECT语句#posts。您可以在attachment->media->url.

另一个批评:您可能想要为#actors. 表actor_id返回的stream可以是用户、页面或组。您的 FQL 仅解析用户。对于组和页面发布的链接,您最终会得到未知的 ID。

于 2012-07-29T14:43:40.137 回答