過去 1 年間 (私の場合は 2012 年) に Facebook アカウントで行ったすべての共有データを取得する必要があります。
stream.type = 80を選択して、「stream」という名前のFQLテーブルを介して共有にアクセスできることがわかりました。「created_time」とsource_idでwhere句も使用すると、トリックが実行されます。
SELECT post_id,message,likes,attachment
FROM stream
WHERE source_id = me()
AND created_time > 1325397600
AND type=80
ORDER BY likes.count desc
事実は... ストリーム テーブルをクエリするとき、facebook のエンジンには制限が必要なようです。提供しない場合、結果はありません。制限が設定されていない場合、応答時間が非常に長くなる可能性があるためだと思います... とにかく、それには多くの理由があると確信しています。そう :
SELECT post_id,message,likes,attachment
FROM stream
WHERE source_id = me()
AND created_time > 1325397600
AND type=80
ORDER BY likes.count desc
LIMIT 100
しかし: この制限パラメータは、SQL サーバーなどの SQL ステートメントとは異なり、いくつかの where 句の前に適用されるように見えます。これは、fb がサンプル クエリで行うことが順次であることを意味します。
ストリームから任意のタイプ (ステータス、共有、写真、場所、友人からのウォールへの投稿など) の非常にランダムに 100 の要素を取得します。実際、私の source_id 句は制限前に適用されているようです。
次に、タイプ80とcreated_timeでフィルタリングしますが、方法がわからない
私の場合、2012 年のすべてのシェアが必要ですが、2000 または 5000 に設定された任意の制限が、フィルターを適用する前に 2012 年のすべてのストリーム要素をキャッチするかどうかはわかりません。
多分他の方法がありますか?
どうもありがとうございました。