1

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 に対して検索してから、ユーザー テーブルとページ テーブルからフェッチする必要がありますか。そして、それらの結果を単一のストリーム結果ごとにループしますが、ちょっと重いようです。もっと簡単な方法はありますか?

4

2 に答える 2

3

すべてのユーザーとページを一度に取得する方法があるかどうかはわかりませんが、ユーザー/ページを返す 2 つの個別のクエリを実行し、両方の結果セットで配列マージを実行できます。

ユーザー

SELECT uid,name from user where uid in (SELECT source_id FROM stream WHERE filter_key in (SELECT filter_key FROM stream_filter WHERE uid=me() AND type='newsfeed'))

ページ

SELECT page_id,name from page_id in (SELECT source_id FROM stream WHERE filter_key in (SELECT filter_key FROM stream_filter WHERE uid=me() AND type='newsfeed'))

于 2012-07-13T13:57:16.650 に答える