42

11月下旬以降、FacebookAPIのアプリケーション制限に達しています。ユーザーの写真を取得し、25枚の友達の写真を選択しました→これは、ユーザーが署名したときに行われます(ユーザーのアルバムを作成しています)。

上記のアクションは制限されていますが、11月末まで制限されませんでした。アルバムから写真を取得するためにバッチ呼び出しを使用しています-制限なしでこの情報を取得するためのより良い方法はありますか?

ところで、Facebookによると、1日あたり100万回の通話を行っていますが、カウントによると、1日あたり18万回の通話を行っています。

友人の写真なしでユーザーの写真だけを取得することは、私たちの解決策ではありません。

4

3 に答える 3

38

Facebook API の制限は実際には文書化されていませんが、どうやら次のようなものです: 600 秒あたり、トークンごと、および IP ごとに 600 回の呼び出し。サイトが制限されているため、関連部分を引用します。

Facebook プラットフォーム チームとのいくつかのテストと議論の後、私が認識している、またはドキュメントで見つけることができる公式の制限はありません。ただし、600 秒あたり、トークンごと、および IP ごとに 600 回の呼び出しが、あなたを止める場所であることがわかりました。アプリケーションベースのレート制限もいくつか見ましたが、数値はありません。

原則として、1 秒あたり 1 回の呼び出しはレート制限されません。表面的には、これは非常に制限が厳しいように見えますが、特定の呼び出しをバッチ処理し、サブスクリプション API を使用して変更を取得できることを覚えておいてください。

Javascript SDK を介してクライアント側の Graph API にアクセスできるため。クライアントからの写真のリクエストを移動する場合application limit、アプリケーション サーバー (一意の ID) ではなく、データをフェッチするのはユーザー (一意の ID を持つ各ユーザー) であるため、ヒットすることはないと思います。

これは、すべての操作がサーバーを経由する場合、大規模なリファクタリングを意味する可能性があります。ただし、リクエストが非常に多い場合は、これが最適なソリューションのようです (サーバーに息を吹き込むため)。

batchそれ以外の場合は、 requestを試すことができますが、トラフィックが多い場合は、すでにこの方法を使用していると思います。


これでうまくいかない場合は、 Facebook プラットフォーム ポリシーに従って、 Facebook に連絡する必要があります。

次のしきい値のいずれかを超えるか、超える予定がある場合は、追加の条件が適用される可能性があるため、お問い合わせください: (>5M MAU) または (>100M API 呼び出し/日) または (>>50M インプレッション/日)。

于 2013-01-08T19:59:10.760 に答える
18

Facebookの「Graph API Rate Limiting」ドキュメントには、コードのエラー#4アプリ レベルのレート制限であり、ユーザー レベルのレート制限とは異なると記載されています。正確な数値は示していませんが、アプリ レベルのレート制限を次のように説明しています。

このレート制限は、アプリ レベルでグローバルに適用されます。Ads API 呼び出しは除外されます。

  • レート制限は、過去 1 時間のスライディング ウィンドウでリアルタイムに発生します。
  • 統計は、行われた呼び出しとクエリの数、消費された CPU 時間、各アプリで使用されたメモリについて収集されます。
  • 各リソースに特定のアプリの月間アクティブ ユーザーを掛けた値には制限があります。
  • アプリが許可されたリソースを超えて使用すると、エラーがスローされます。
  • エラー、コード: 4、メッセージ: アプリケーション リクエストの制限に達しました

ドキュメントには、レート制限を回避するための推奨事項も記載されています。アプリ レベルの制限については、次のとおりです。

推奨事項:

  • エラー コード (4) を確認して、スロットリング タイプを確認します。
  • 一気に電話をかけるのではなく、1 日を通して電話を広げます。
  • データのスマートなフェッチを行います (重要なデータ、重複していないデータなど)。
    • リアルタイムのインサイト。最小限のリクエストで、できるだけ多くのページ投稿のインサイトを読み取れるように API 呼び出しが構造化されていることを確認してください。
    • ユーザー フィードを 2 回取得しないでください (2 人のアプリ ユーザーに共通の特定の友達がいる場合)。
    • フレンド数が 250 を超える場合は、すべてのユーザーのフレンド フィードを連続してフェッチしないでください。フェッチは別の日に分けてください。オプションとして、最初にアプリ ユーザーのニュース フィード (me/home) をフェッチして、アプリ ユーザーにとってどの友達がより重要であるかを検出します。次に、それらの友達のフィードを最初に取得します。
  • 次のパラメータを使用してリクエストを制限/フィルタリングすることを検討してください: 「since」、「until」、「limit」
  • ページ関連の呼び出しでは、リアルタイム更新を使用してデータの変更をサブスクライブします。
  • フィールド拡張により、複数のグラフ クエリを 1 回の呼び出しに「結合」できます。
  • データのクエリが最後のチェック以降に変更されたかどうかをチェックする Etags。
  • 大規模なユーザー ベースを持たないページ管理開発者の場合は、ページの管理者にアプリを受け入れてもらい、ユーザー数を増やします。

最後に、ドキュメントは次の情報ヒントを提供します。

  • 呼び出しをバッチ処理しても、API 呼び出しの数は減りません。
  • 並列呼び出しを行っても、API 呼び出しの数は減りません。
于 2014-10-24T14:49:03.570 に答える