Facebook が API 呼び出しを制限する方法について質問があります。
この記事の下部: http://developers.facebook.com/blog/post/478/ facebook のコメント:
上記の各テーブルと接続のドキュメントに記載されている制限に加えて、可視性チェックを実行する前にフェッチする結果の最大数が 5,000 であることを知っておくと役立ちます。
このような公開データをどのようにページングするのか疑問に思っています。たとえば、シャキーラを例にとると、彼女はアップロードする写真ごとに非常に多くの「いいね!」を取得します。この API 呼び出しは次のとおりです。
5000いいねで止まる。
興味深い点の 1 つは、このデータはすべて公開されているため、Facebook にログインしなくても表示できることです。データの使用方法に関するプライバシー ポリシーがあることは知っていますが、それは私の質問ではありません。データが公開されている場合、このデータが何であるか、なぜすべてを取得できないのですか?また、可能であればどのように取得できるのでしょうか?
主な質問は次のとおりです。
上記のように、特定の API 呼び出しで 5000 を超える結果を取得できますか?
最近の5000いいねですか?この投稿のデータをすぐに収集し始め、10 分ごとに戻って新しい「いいね!」を探した場合、5000 の制限を回避するこの方法ですべてのデータを取得できるでしょうか?
API呼び出しの制限ですか、それとも1人のユーザーに送信する結果の数だけですか、それとも特定の投稿に対して送り返す結果の量などですか?
これは、タグ付けされた投稿、コメント、ページングなどに適用されますか?
私はこの質問が少し自由回答であることを知っていますが、私は答えを求めてあちこちを見てきましたが、十分に文書化されていません. 今後、多くの人がこの情報を参照する可能性があると思います。
アップデート:
この API 呼び出しを実行する場合:
1 つの結果が返されるため、制限に達します (少なくともそれに近い)。誰かが FQL の使用を提案しましたが、それはより多くを返す可能性があります。しかし、FQL を使用して PHP で同じことを試みたところ、1 レコードしか返されませんでした。
$select = urlencode("SELECT user_id, object_id, post_id FROM like WHERE post_id='5027904559_10150854808869560' LIMIT 1000 OFFSET 4964");
$fql_query_url = 'https://graph.facebook.com/fql?q=' . $select;
$fql_query_result = file_get_contents($fql_query_url);
$fql_query_obj = json_decode($fql_query_result, true);
したがって、これまでのところ、唯一の答えは「いいえ」です。常に 5000 件の結果に制限されています。そして、特定のアクセス許可を持つ特定の access_token が役立つかどうかはわかりません。
Shakira のページにアクセスして「x amount of people like this」をクリックし、リストを下にスクロールし始めると、制限に達しました。つまり、Facebook は API と FQL のリターンを制限しているだけでなく、自社のページも制限しています。
誰かが理由を知っているかどうかを知りたいですか?一度にキャッシュできるのは 5k だけで、非常に多くのリクエストでデータベースにヒットした場合、スケールを処理できませんか? 推測です。