- 公開された投稿(Facebook内で誰でも見れるもの)
- 特定のユーザにのみ見えるもの(read_streamパーミッションが必要)
- Facebook Page上の投稿毎のインプレッション(ページ管理者のread_insightsパーミッションが必要)
filter_keyと複数ユーザ両方、もしくは片方を指定すると、返される値はFacebookのホーム画面のストリームと同じような動作をします。もし一人のユーザしか指定されず、filter_keyも指定されなければ、プロフィール画面のストリームが返ります。プロフィール画面のストリームの場合、ホーム画面の場合よりも古いデータが含まれます。
ページの場合、プロフィール画面のストリームにはファンからの投稿も含まれます。ユーザのストリームから、あなたのアプリケーションを通じて投稿されたものをすべて取得したい場合は、app_idを指定します。
たとえば、閲覧中のユーザ自身のストリームを得るには、
SELECT message FROM stream WHERE filter_key="nf"
と書きます。直近30日もしくは50投稿という条件のうち、多い方が限度になります。
Columns
Indexable | Name | Type | Description |
---|---|---|---|
* | post_id | string | 投稿ID。 |
viewer_id | int | ストリームを閲覧するユーザID。デフォルトはログイン中のユーザです。 | |
* | app_id | int | 投稿したアプリケーションのID。PhotosやVideoなどのFacebookアプリケーションのIDも含まれます。 |
* | source_id | int | 投稿を取得する対象となるユーザ、ページ、グループ、イベントのID。ページもしくはユーザが書き込んだ投稿(つまり、actor_idがsource_idとなります)と、このターゲットに対して書き込まれた投稿(つまり、target_idがsource_idとなります)を含みます。 |
updated_time | time | 投稿が最終更新された日時。ユーザが投稿に対してコメントしたときに更新されます。 | |
created_time | time | ストリームに投稿された日時 | |
* | filter_key | string | データを取得する際のフィルタキー。stream.getFiltersもしくはFQLのstream_filterテーブルから取得できます。 |
attribution | string | アプリケーションによって投稿された場合、その投稿アプリケーションを示す文字列が入ります。たとえば、"Joe loves the Social Web (by MicroBloggerApp)"です。 | |
actor_id | string | 投稿者のID | |
target_id | string | 投稿の対象となるユーザもしくはページ | |
message | string | 投稿内容 | |
app_data | array | 添付と一緒に投稿する場合にFacebookへ与えられるアプリケーション固有の情報の配列。とくに必要としない限りは、あなたのアプリケーション上に表示するのに必要とされる情報ではありません。この配列は以下の情報を含みます。
| |
action_links | array | リンクに指定されるテキストとURLの配列 | |
attachment | array | 投稿の添付情報の配列。Facebookが返す添付情報です。 | |
impressions | int | 投稿のインプレッション数。ページ管理者のread_insightsパーミッションを得る必要があります。 | |
comments | array | 投稿に寄せられたコメントの配列の"サンプル"。このリストには、ストリーム上に表示される最高2つのコメントしか含まれません。コメントの全情報を得るには、stream.getComments、もしくはこの投稿のpost_idを用いてFQLのcommentテーブルを用いてください。この配列には、以下のフィールドが含まれます。
| |
likes | array | 投稿に寄せられたlikeの配列。以下のフィールドを含みます。
| |
privacy | array | 投稿のプライバシー設定。 | |
type | string | もうサポートされていないフィールドなので利用しないでください。投稿内容の種類を識別するには、attachmentを見てください。(attachmentが無ければステータス投稿です)。もし指定されていればmedia type(photo, Flash, mp3)を参照してください。 | |
permalink | string | ストリーム投稿のURL | |
* | xid | int | live stream boxの投稿を得る場合、Live Stream boxのxidがこれにあたります(指定できない場合は'default'を指定してください)。 |
tagged_ids | array | 投稿内容にタグ付けされているID(i64)の配列 |
Examples
ユーザのコネクション全体中の閲覧可能なストリーム(フォローしてるか問わず。)
SELECT post_id, actor_id, target_id, message FROM stream WHERE source_id in (SELECT target_id FROM connection WHERE source_id=<uid>) AND is_hidden = 0
ユーザのホーム画面のストリーム(News Feed)。ユーザのコネクションのうちで、フォローしているもののみです。
SELECT post_id, actor_id, target_id, message FROM stream WHERE source_id in (SELECT target_id FROM connection WHERE source_id=<uid> AND is_following=1) AND is_hidden = 0
stream_filterテーブルからfilter_keyを取得してstreamテーブルを扱う典型的なケースです。この場合は、ユーザ自身のNews Feedを取得します。
SELECT post_id, actor_id, target_id, message FROM stream WHERE filter_key in (SELECT filter_key FROM stream_filter WHERE uid=<uid> AND type='newsfeed') AND is_hidden = 0
任意の日時より新しい投稿のみ取得してリフレッシュします。
SELECT post_id, actor_id, target_id, message FROM stream WHERE source_id = <source_id> AND updated_time > <newest_time>
取得済みの投稿より前の者を取得します
SELECT post_id, actor_id, target_id, message FROM stream WHERE source_id = <source_id> AND updated_time < <oldest_time> LIMIT 50
SELECT actor_id, message FROM stream WHERE source_id = <user id> limit 50
ストリーム中のアクションリンクを取得し、HTMLマークアップを除去します。
SELECT strip_tags(action_links) FROM stream WHERE source_id = <user id>
Live Stream pluginの投稿を取得します。
SELECT post_id, message FROM stream WHERE app_id = <app id> AND xid = 'default'
ページの投稿毎の統計情報を取得します。
SELECT post_id, actor_id, message, impressions FROM stream WHERE actor_id = <page id> and source_id = <page id>