web-dev-qa-db-ja.com

メッセンジャープラットフォーム制限エラー(#613)このAPIへの呼び出しがレート制限を超えました

メッセンジャープラットフォームでアプリをストレステストして、同じメッセージを短い時間枠で複数のユーザーに送信するのに問題があります。制限エラーが発生します:(#613) Calls to this api have exceeded the rate limit.

現在、私は同じメッセージを同じユーザー(me)に数回送信することでこれをテストしています。実際のシナリオでは、同じメッセージが複数の異なるユーザーに送信されます。

また、私はこれらのテストを実行するためにライブアプリのテストアプリケーションを使用しています。これはライブアプリで大幅に改善されるはずですか?

私は本当にナイススループットのブロードキャストメッセージが必要なので、現在、私のセットアップには複数のスレッドがスポーン(50)してメッセージを並行して送信しています。また、配信プロセスの速度を向上させるためにバッチリクエストを試しましたが、その時点で実際には耐えられなくなり、成功率は50%未満でした。

一般的なGraph APIレート制限( https://developers.facebook.com/docs/graph-api/advanced/rate-limited )について読み、メッセージを送信するには、ページを提供しますアクセストークン。メッセージの送信数が多すぎる場合、アプリが「ページレベルのレート制限」カテゴリに分類されることを期待しています。ただし、エラー応答にはX-Page-Usageヘッダーはありません(ちなみにX-App-Usageもありません)。

メッセンジャープラットフォームのドキュメント( https://developers.facebook.com/docs/messenger-platform/send-api-reference#limits )には、次のように記載されています。

Messenger Platformは、Send APIへの高頻度の呼び出しをサポートしています。

ただし、時間の経過とともに突然の大量の負荷を分散し、レート制限に達した場合にスループットを制御できるようにシステムを設計する必要があります。

悪意のある動作やユーザーエクスペリエンスの低下を防ぐために、レート制限が設けられています。

レート制限に達したことを示すエラーを含め、Send APIから返されたエラーを必ずキャッチしてください。

これらは、一般的なGraph APIの制限を明示的に参照していないため、特に有用ではありません。また、実行が許可されているリクエストの量も異なります。

何か足りないものはありますか?

7
pjpires

Facebookの最新のドキュメントには、SendAPIの1秒あたり250コールが明確に記載されています。

Send APIには固定のレート制限はありませんが、1秒あたり250のリクエストを安全に送信できます。

詳細はこちら: https://developers.facebook.com/docs/messenger-platform/send-messages#limits

0
Srini

あなたの質問に答えるために、「これはライブアプリで劇的に改善されるはずですか?」

いいえ、この場合のテストアプリとライブアプリの間に違いはありません。私のアプリケーションはすでに稼働しており、このエラーも発生しています。

また、ページアクセストークンを使用しているため、ケースが「ページレベルのレート制限」に該当することに同意します。しかし、ページレベルの制限に関連するエラーは表示されません。また、私のアプリダッシュボードには、API Limitのヒットも表示されません。ですから、私が持っているのは613-カスタムレベルスロットリングだけです。FBは「パートナーマネージャーに連絡する」と言っています。

================================================== =======================

私はこれを解決しました。 「Send APIの呼び出しが速すぎるため、レート制限されています」というFBサポートの説明に基づいて、setTimeout()を使用して、Send APIリクエストの遅延を200msに設定しました。 10メッセージ/秒の速度で、私はもう限界に達していません。エラー613はまったく発生していません。 Facebookが正式に文書化することはないので、理想的なシナリオを見つけるために、この速度を徐々に上げていきます。実験の投稿を続けます。

0
Carmela