600コール/ 600秒のレート制限がいくつか言及されています(例: quora )。
知りたいのは、600 batch リクエストを600秒で実行できるかどうかです(バッチリクエストは最大50のリクエストで構成されます)。
次のエラーメッセージをチェックして、プログラムでレート制限を処理する必要があります。エラーが発生した場合は、次の呼び出しの前に時間待機ループを設定する必要があります。トラフィックの多いアプリケーションの1つがこのエラーを監視しており、速度が低下します。
差出人: https://developers.facebook.com/docs/bestpractices/
レート制限(API_EC_TOO_MANY_CALLS)アプリケーションで呼び出しが多すぎる場合、APIサーバーが自動的にレート制限を行い、「API_EC_TOO_MANY_CALLS」エラーを返します。通常、これは発生しません。もしそうなら、それはあなたのアプリケーションがあまりにも多くのAPI呼び出しをしていると判断されたためです。コードを反復処理して、必要なユーザーエクスペリエンスを維持するために、呼び出しをできるだけ少なくします。複雑なFQLクエリも回避する必要があります。アプリケーションが抑制されているかどうかを理解するには、Insightsに移動して[Throttling]をクリックします。
edit
コメントスレッドでIgyによって報告されたように、そのバッチの各リクエストは1としてカウントされます。たとえば、600が最大制限である場合、それぞれ50の呼び出しを含む15のバッチリクエストを開始できます。
FBドキュメントによると、バッチ内の各要素は個別の呼び出しとしてカウントされます。
現在、バッチに含めることができるリクエストの数は50に制限されていますが、バッチ内の各呼び出しは、API呼び出し制限とリソース制限を計算するために個別にカウントされます。たとえば、10個のAPI呼び出しのバッチは10個の呼び出しとしてカウントされ、バッチ内の各呼び出しは同じ方法でCPUリソースの制限に影響します。
引用元: https://developers.facebook.com/docs/reference/api/batch/
ただし、経験的な証拠はありません。
デビッド
私の経験から、彼らは彼らがされた方法に関係なく個々の要求を数えます(バッチでまたはそうではありません)。
たとえば、それぞれに10リクエストを含む1バッチ/秒を実行しようとすると、すぐに「TOO MANY CALLS」になります。
私が1バッチ/ 10秒を実行している場合、各バッチに10のリクエストが含まれていると、呼び出しが多すぎることはありません。
個人的には、通常のAPI呼び出しよりもバッチを優先する理由はないと思います。
私は今、Facebook APIでかなり大きくてつらい経験をしており、それを述べることができます:
私が行っている最も頻繁なグラフAPI呼び出しにはネストされたフィールドがたくさん含まれており、200回しか実行しなかった後、「600呼び出し/ 600秒」に達したことに気付きました。つまり、私の場合、基本的にこの呼び出し回数は3です...
他にも多くのレート制限がありますが、どれも適切に文書化されていません...
バッチ呼び出しは間違いなく、バッチ内のアイテムごとにカウントされます。 50項目の1回のバッチ呼び出しは、グラフを使用した50回のAPI呼び出しに相当します。