2

過去 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 年のすべてのストリーム要素をキャッチするかどうかはわかりません。

多分他の方法がありますか?

どうもありがとうございました。

4

0 に答える 0