2012-07-13 11 views
1

得到FQL流我想從FQL如何使用全名

fql?q=SELECT post_id, app_id, source_id, updated_time, created_time, filter_key, 
     attribution, actor_id, target_id, message, app_data, action_links, 
     attachment, impressions, comments, likes, place, privacy, permalink, xid, 
     tagged_ids, message_tags, description, description_tags, type 
     FROM stream WHERE filter_key in (
      SELECT filter_key FROM stream_filter WHERE uid=me() 
      AND type='newsfeed') 

顯示流數據,但問題是,該表沒有用戶/頁面,只有ID的名稱。

有沒有什麼辦法讓這些結果得名?並且不僅是actor_id,而且也是提出評論的人的名字。

是否需要對流中的所有這些id進行多查詢和搜索,然後從用戶和頁表中進行提取。然後將這些結果循環到每個單獨的流結果中,看起來有點沉重。更簡單的方法?

回答

3

我不確定是否有辦法一次獲得所有用戶和頁面,但是可以運行兩個單獨的查詢來返回用戶/頁面,然後使用兩組結果合併性能。

用戶

SELECT UID,名稱從用戶其中uid在(SELECT SOURCE_ID FROM流WHERE filter_key在(filter_key SELECT FROM stream_filter其中uid =我()和類型= '新聞源'))

頁面

SELECT PAGE_ID,從頁面名稱,其中PAGE_ID在(SELECT SOURCE_ID FROM流WHERE filter_key中(選擇filter_key FROM stream_filter其中uid =我()和type = '新聞源'))

+0

是的,但變得非常努力,我仍然沒有得到評論者的名字。 – 2012-07-13 18:08:41

1

你可以做到這一點在以下方式:

NSString *query = 
    @"{" 
    @"'friends':'SELECT post_id,actor_id,target_id,message,created_time, likes, comment_info FROM stream WHERE source_id IN (SELECT uid2 FROM friend WHERE uid1 = me()) AND created_time > 1 ORDER BY created_time DESC LIMIT 50'," 
    @"'friendinfo':'SELECT uid, name, pic_square FROM user WHERE uid IN (SELECT actor_id FROM #friends)'," 
    @"}"; 

一旦你將得到的結果,將其存儲到兩個數組是這樣的:

FBFriendsNewsArray =(NSArray *) [[[result objectForKey:@"data"]objectAtIndex:0]objectForKey:@"fql_result_set"]; 

           FBFriendsInfoArray=(NSArray *) [[[result objectForKey:@"data"]objectAtIndex:1]objectForKey:@"fql_result_set"]; 

雖然顯示該用戶的ID飼料搜索(actor_id )在朋友信息數組中。希望這會有所幫助。

+0

完美的謝謝。 – aryaxt 2013-11-18 03:27:10

相關問題