2012-07-29 54 views
0

我正在通過PHP SDK以下FQL:FQL:故障連接表其中id是在格式USERID_LINKID

{ 
"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()以使它無法運行。

回答

1

似乎沒有辦法從流帖子中獲取link_id。您的查詢獲取帖子的ID,但不是鏈接。

但是,我不認爲你需要它。擺脫#links子查詢並將attachment添加到#posts子查詢中的SELECT語句。您可以在attachment->media->url處獲得鏈接網址。

另一個批評:您可能需要爲#actors添加其他子查詢。由stream表返回的actor_id可以是用戶,頁面或組。您的FQL僅解析用戶。您將以組和頁面發佈的鏈接爲未知ID。