TG-Staff 团队 avatar TG-Staff 团队

Telegram Bot API レート制限ルール完全解説:OnlyTGユーザーがピーク時のダウングレード戦略に対処する方法

Telegramのみ API Telegramボット レート制限 劣化

Telegram Bot API レート制限ルール完全解説:OnlyTG ユーザーがピーク時のダウングレード戦略に対応する方法

大規模ユーザー向けの onlyTG Bot を運営しているなら、メッセージの遅延、一部メッセージの消失、さらには Bot の一時的な「ストライキ」を経験したことがあるでしょう。これらの現象の背後にある核心的な原因は、多くの場合、Telegram Bot API のレート制限メカニズムに抵触したことにあります。レート制限ルールを理解し、ダウングレード戦略を策定することは、Bot の安定運用を保証するための前提条件です。

OnlyTG ユーザーが Telegram Bot API のレート制限メカニズムを理解すべき理由

onlyTG エコシステムを利用するチームにとって、Bot はユーザーとサービスをつなぐ中核的な架け橋です。自動返信、一斉通知、有人対応への引き継ぎなど、あらゆるステップが Bot API を介したメッセージ送信に依存しています。レート制限が発動すると、最も直接的な結果は以下の通りです:

  • メッセージ遅延:ユーザーが返信を待つ時間が秒単位から数分単位に延び、体験が急激に低下。
  • サービスダウングレード:一斉送信時に一部のユーザーがメッセージを受信できず、キャンペーンコンバージョン率が低下。
  • 運用の制御不能:ピーク時にカスタマーサポートが迅速に対応できず、ユーザーが競合に流出。

レート制限ルールを習得することは、Bot 運用に安全ロックをかけるようなものです。つまり、「レッドライン」がどこにあるかを知ることで、事前にトラフィックを計画し、受動的なダウングレードを回避できます。

Telegram Bot API の主要なレート制限ルール一覧

Telegram 公式はすべてのレート制限パラメータの正確な数値を公開していませんが、コミュニティの長年の実践と公式ドキュメントに基づき、以下のルールが業界の共通認識です:

シナリオおおよその制限(コミュニティの共通認識)説明
グローバルメッセージ送信最大 30 件/秒異なるユーザー/グループに配信される総メッセージ数
単一グループメッセージ約 20 件/秒同じグループ内でメッセージを送信する場合の制限
チャンネルメッセージ比較的緩やかチャンネルの制限はグループより高いが、上限は存在する
プライベートチャットメッセージグローバルと共有プライベート会話のメッセージは、1秒30件のグローバル制限にカウントされる
メディアメッセージより低い画像/動画/ファイルなどのメディアメッセージは、より多くのクォータを消費する

メッセージ送信頻度:毎秒と毎分のハードリミット

公式ドキュメントでは、Bot は毎秒最大 30 件のメッセージ(異なるチャット相手に配信)を送信できると明記されています。これを毎分に換算すると、約 1800 件になります。しかし、これは絶対的なものではありません。Telegram は Bot のアクティビティやサーバー負荷に応じて、動的にしきい値を調整します。新規 Bot は通常、より緩やかなクォータを得られますが、高アクティビティの Bot はより厳しく制限される可能性があります

重要なポイント:

  • 毎秒 30 件は配信上限であり、単一チャットの上限ではありません。30 人の異なるユーザーにそれぞれ 1 件ずつ送信すれば、ちょうど基準を満たします。しかし、1 人のユーザーに連続して 30 件送信すると、レート制限に抵触しやすくなります。
  • バーストトラフィックが最も危険です。Bot が 1 秒間に突然 50 件のメッセージを送信すると、ほぼ確実に 429 Too Many Requests エラーが発生します。

グループとチャンネルの差別化されたレート制限戦略

グループメッセージには独立した制限があります:各グループで毎秒約 20 件です。つまり、大規模なグループ内で複数のメッセージ(例:ウェルカムメッセージ + ルール + メニュー)を同時に送信すると、グループレベルのレート制限に直接抵触する可能性があります。

チャンネルメッセージの制限は比較的緩やかですが、無制限ではありません。運営者はチャンネル内で複数のメディアメッセージ(例:5枚の画像 + 説明文)を同時に送信することは避け、2〜3秒の間隔を空けてバッチ送信することを推奨します。

プライベートチャットのシナリオは、グローバルクォータと共有されます。Bot が大量のプライベートチャットリクエスト(例:カスタマーサポートシナリオ)を同時に処理する場合、グローバルな 30件/秒のクォータは急速に消費されます。

ピーク時の Bot サービスダウングレードの一般的な症状と原因

ピーク時(例:キャンペーン、ライブコマース、ユーザーの集中問い合わせ)における Bot のダウングレードの症状には、通常以下が含まれます:

  • メッセージ遅延 10〜30 秒:ユーザーが「入力中」を表示しているが、返信がなかなか届かない。
  • 一部メッセージの消失:ユーザーが送信したメッセージに対して返信がなく、Bot ログに API が 429 エラーを返したことが記録される。
  • Webhook 応答タイムアウト:Telegram サーバーが Bot の Webhook に更新を送信した際、Bot がタイムリーに応答せず(タイムアウトは通常 2〜5 秒)、更新が破棄される。
  • グループメッセージの混乱:複数のメッセージが同時に送信され、順序が乱れたり、一部のメッセージがグループメンバーに届かない。

根本原因:ピークトラフィックが瞬間的にレート制限のしきい値を超える。例えば、キャンペーン開始時に 100 人のユーザーが同時に /start を送信した場合、Bot は 1 秒以内に 100 件のメッセージを返信しようとし、毎秒 30 件の制限に直接抵触し、残りの 70 件のメッセージは遅延するか破棄されます。

Telegram Bot API のレート制限に対応する実践的なダウングレード戦略

メッセージキューとレートリミッターの実装

これは最も中核的なエンジニアリングソリューションです。sendMessage を直接呼び出すのではなく、以下の手順を踏みます:

  1. メッセージキューを使用してリクエストをバッファリング:送信待ちのメッセージを Redis キューやメモリキューにプッシュし、バックグラウンドワーカーが一定のレートで取り出して送信します。
  2. トークンバケットアルゴリズムを組み合わせる:毎秒 25 個のトークンを設定し(緊急メッセージ用に 5 クォータを確保)、40 ミリ秒ごとに 1 トークンを補充します。メッセージ送信前にトークンを取得し、取得できない場合は待機するか、リトライキューに入れます。
  3. 指数バックオフリトライを実装:429 エラーをキャッチした後、1 秒、2 秒、4 秒… 待機してから再試行し、成功するまで繰り返します。即時リトライでレート制限を悪化させないようにします。

サンプルフロー:

用户消息 → Bot 接收 → 消息队列(暂存) → 速率限制器(令牌桶) → sendMessage API

ユーザー側へのダウングレード通知と待機メカニズム

Bot がレート制限や高負荷を検出した場合、ユーザーに対してダウングレード通知を積極的に送信します:

  • 「現在お問い合わせが集中しており、返信が遅れる場合があります。しばらくお待ちください。」
  • 「問題を迅速に解決するため、以下のリンクをクリックして待機列にお並びいただき、有人サポートができるだけ早くご連絡いたします。」

同時に、ユーザーを 振り分けリンク に誘導して待機列で有人対応を待つように促し、Bot への直接メッセージの負荷を軽減します。

レート制限対策のヒント

TG-Staffのセッション振り分け振り分けリンク機能を活用し、ピーク時にユーザーを自動的に有人オペレーターキューへ誘導することで、Botの直接メッセージ送信数を減らし、レート制限の発生を根本的に回避します。また、振り分けリンクは訪問者の流入元データを取得できるため、後の集客効果分析に役立ちます。振り分けリンク設定ドキュメントを確認

OnlyTGエコツールを活用したBotのレート制限対策の最適化

独自キューに加えて、エコツールを活用してレート制限の負荷を軽減できます:

  • Botフレームワーク内蔵のレート制限プラグインpython-telegram-botRateLimiterクラス、またはnode-telegram-bot-apilimit設定により、コードレベルで送信レートを制御できます。
  • サードパーティAPIプロキシ:一部のサービスはTelegram APIプロキシを提供し、レート制限のリトライと負荷分散を自動処理します。自前でキューを実装したくないチームに適しています。
  • TG-Staffの自動化機能:ビジュアルなコマンドフローでBotの自動返信を編集し、不要なメッセージ送信を削減。セッション振り分けで複雑な問題を有人エージェントに転送し、Botの自動返信量を低減します。

レート制限チェックリスト:Botの安定運用を確保する7つのポイント

チェック項目推奨アクションステータス
メッセージ送信頻度の監視APIレスポンスステータスコードを記録し、429エラーアラートを設定
Webhookタイムアウト設定Botの応答時間を2秒未満に保ち、タイムアウト後に自動リトライ
グループメッセージの分割同一グループ内で1秒間に15件以上のメッセージ送信を回避
ダウングレード通知の設定「ピーク時お知らせ」テンプレートを準備し、レート制限時に自動送信
レートリミッターの実装トークンバケットまたはリーキーバケットアルゴリズムで送信レートを制御
キューとリトライ機構メッセージ送信失敗時に自動でリトライキューに投入(指数バックオフ)
振り分けリンクの準備TG-Staffの振り分けリンクを設定し、ユーザーを待機列に誘導

注意

レート制限ルールはTelegramのアップデートに伴い変更される可能性があります。定期的にTelegram Bot API公式ドキュメントを参照し、最新の閾値を確認することをお勧めします。また、TG-Staffプロフェッショナル版が提供するコンテンツリスク管理機能により、エージェントのメッセージ送信頻度を監視し、レート制限リスクを事前に警告できます。

よくある質問

Q:Telegram Bot API のレート制限ルールは固定ですか? A:Telegram 公式はすべてのレート制限パラメータを公開していませんが、コミュニティのコンセンサスでは、毎秒最大 30 メッセージ(異なるユーザー/グループへの配信)、グループごとに毎秒約 20 メッセージ、チャンネルの制限は比較的緩やかです。ただし、実際のしきい値は Bot のアクティビティやサーバー負荷に応じて動的に調整される可能性があります。

Q:Bot がレート制限を受けた場合、メッセージは失われますか? A:必ずしもそうとは限りません。Telegram Bot API は 429 Too Many Requests エラーを返します。Bot コードでこのエラーをキャッチし、再試行メカニズム(指数バックオフ付き)を実装することをお勧めします。処理されない場合、メッセージが失われる可能性があります。メッセージキューを使用すると、この問題を効果的に回避できます。

Q:OnlyTG ユーザーは、Bot がレート制限しきい値に近づいていることをどのように監視できますか? A:Bot コードで API 応答ステータスコードと応答時間を記録するか、サードパーティの監視ツール(Prometheus + Grafana など)を使用してメトリクスを収集できます。TG-Staff コンソールは、エージェント操作記録と統計を提供し、メッセージ送信量の分析を支援します。

Q:グループ内で複数のメッセージを同時に送信すると、レート制限が発生しやすくなりますか? A:はい。グループ内の 1 秒あたりのメッセージ数には独立した制限(約 20 件)があります。グループメッセージには「スロットル」を適用することをお勧めします。たとえば、sendChatAction を使用して最初に「入力中」ステータスを送信し、間隔を空けて実際のメッセージを送信することで、トラフィックの急増を回避できます。

Q:分流リンク(Diversion Link)はどのように Bot のレート制限緩和に役立ちますか? A:分流リンクは、ユーザーを Bot の直接メッセージから Web 上の有人エージェントに誘導し、Bot の自動返信メッセージ量を削減します。同時に、リンクはユーザー発信元データをキャプチャできるため、広告アトリビューションに役立ちます。TG-Staff のスタンダードプラン以上でこの機能を利用できます。


今すぐ行動し、onlyTG Bot を最適化しよう

レート制限は怖くありません。準備ができていないことが問題です。今日から、Bot コードにレート制限と再試行メカニズムが実装されているか確認してください。TG-Staff の分流リンクを設定し、ピーク時にユーザーを自動的にキューに誘導します。3日間の無料トライアルで、完全なカスタマーサポートと運用機能を体験してください。

レート制限ルールをマスターして、ピーク時でも onlyTG Bot を安定稼働させましょう。