2

最初のクエリが 81を返すため、50 の投稿が返されることを期待していますが、結果には 43 の投稿しか含まれていません"SELECT post_id, actor_id, target_id, message, likes FROM stream WHERE source_id = me() LIMIT 100""SELECT post_id, actor_id, target_id, message, likes FROM stream WHERE source_id = me() LIMIT 50"

LIMIT がどのように機能するのか疑問に思っています。

その上、created_time私にとっては実際には機能せず、 "SELECT post_id, actor_id, target_id, message, likes FROM stream WHERE source_id = me() AND created_time > 1262196000 LIMIT 100"81件の投稿を"SELECT post_id, actor_id, target_id, message, likes FROM stream WHERE source_id = me() AND created_time > 1262196000"返しますが、5件しか返されません。何か考えはありますか?

4

1 に答える 1

5

はい、それは正常です。Facebook は FQL を実行し、クエリに一致するすべての投稿を返します。この場合、100 投稿で。

次に、 Facebook はアプリに表示されない投稿を除外します。これは、アクターのプライバシー設定に基づいています。結果を事前にフィルター処理できるvisible_to_meフィールドはテーブルにありません。stream

100 件の投稿が必要な場合は、200 件を要求してから、最初の 100 件を表示します。ほとんどの場合、結果には少なくとも 100 件の投稿が表示されます。

streamを指定せずにクエリを実行LIMITすると、最大で過去 50 件の投稿または過去 30 日間に相当するアイテムのいずれか少ない方が取得されます。

おまけとして、created_timeクエリのstrtotime()場合、UNIX タイムスタンプを考えない場合 (私は考えていません)、FQL でタイムスタンプを作成するために使用できます。strtotime()PHP関数と同じ文字列を解析します。

于 2013-01-10T23:22:23.520 に答える