Telegram API_ID_PUBLISHED_FLOOD エラーの直し方:復旧チェックリスト
API_ID_PUBLISHED_FLOOD は、認証リクエストの api_id が公開済み、またはリリース済みアプリに不適切だと Telegram に判定されたことを示します。その資格情報での再試行を止め、Telegram の制限付きサンプル API ID をコピーしていないか、自分のアプリ資格情報が公開されていないかを確認し、自分のアプリ用 API ID へ移行してください。Telegram はこのエラー向けのセルフサービス解除 API やローテーション endpoint を文書化していません。
要点
- Telegram のオープンソース client に含まれるサンプル API ID はテスト用で、公開アプリで使うと
API_ID_PUBLISHED_FLOODが発生します。 - Telegram API Terms は、各アプリが自分の
api_idを取得するよう求めています。 API_ID_INVALID、API_ID_PUBLISHED_FLOOD、AUTH_KEY_DUPLICATED、SESSION_REVOKEDは別の障害です。- 調査中も
api_hash、ログインコード、QR token、export した session を log に残してはいけません。 - 通常の Telegram アカウント認証では、BotFather token は API ID/API hash の代わりになりません。
Telegram API_ID_PUBLISHED_FLOOD の直し方
これはアプリ資格情報の問題であり、「待ってから再試行」という意味ではありません。Telegram は auth.exportLoginToken の 400 エラーとして、API ID がどこかで公開され使用できない状態だと説明しています。公式のアプリ作成ガイドも、オープンソース client の制限付きサンプル API ID はテスト専用で、リリースするアプリには独自 ID が必要だと明記しています。
最初にエラーを分けます。
| エラー | Telegram の説明 | 次に行うこと |
|---|---|---|
API_ID_PUBLISHED_FLOOD | API ID が公開された、または制限付きサンプルがテスト外で使われた | 新規認証を止め、出所を調べ、自分のアプリ資格情報に置き換える |
API_ID_INVALID | api_id と api_hash の組み合わせが無効 | 同じアプリのペアか、config 読み込みで値が変わっていないかを確認する |
AUTH_KEY_DUPLICATED | 同じ authorization key を競合する main session で並行使用した | 新しい authorization key を作り、再ログインする |
SESSION_REVOKED | ユーザーが認証を無効化した | 正しいアプリ資格情報で認証をやり直す |
FLOOD_WAIT_X | 試行回数が多すぎる | server が指定する待機時間を守る |
既存の API ID/API hash と bot token の比較は資格情報の選び方を説明します。本記事は MTProto 認証がすでに失敗した後の復旧に限定します。
手順1:API ID の出所を確認する
値そのものを表示せずに追跡してください。安全な fingerprint、deployment 名、config の出所だけを記録し、次を確認します。
- Telegram のオープンソースコードからサンプル ID をコピーしていないか。
- 同じペアが public repository、package、container image、browser bundle、ドキュメント、issue、CI log にないか。
- 複数の製品や顧客が、本来共有すべきでないアプリ資格情報を使っていないか。
- code login、QR login、または両方で同じエラーになるか。
Code login と QR login はどちらも client application の api_id と api_hash を使います。QR はユーザーの承認方法を変えるだけで、アプリ資格情報を不要にはしません。auth.exportLoginToken も両方の値を必須とし、API_ID_PUBLISHED_FLOOD を返す可能性があります。
手順2:正しいアプリ資格情報を取得する
my.telegram.org にログインし、API development tools を開き、有効な Telegram 電話番号に紐づく API ID と API hash を作成または確認します。Telegram は現在、1つの番号に紐づけられる API ID は1つだけと説明しています。
そのため、公式にない即時ローテーションを約束してはいけません。失敗した値が Telegram のサンプルや別プロジェクトの資格情報なら、自分のアプリのペアへ置き換えるのが明確な公式ルートです。自分の API ID が公開され拒否された場合は、公開箇所を削除し、秘密を含まない証拠を保存したうえで、Telegram の公式サポート経路を使ってください。再試行だけで解除されるとは推測しないでください。
api_hash は server-side の credential store から runtime に注入し、browser bundle に含めず、log と error tracker ではマスクします。QR token、認証コード、2FA 情報、session export もそれぞれ別の秘密として扱います。
手順3:二次障害を起こさず移行する
- 拒否された ID を使う新規ログインを停止する。
- まず1つの test environment だけで credential reference を更新する。
- code または QR 認証を1回だけ制御して実行し、エラー種別、段階、timestamp だけを記録する。
- 成功後に接続されたアカウント identity を確認してから段階的に traffic を戻す。
FLOOD_WAIT_X、SESSION_REVOKED、duplicate-session エラーを監視する。- deployment manifest、サンプル、cached CI artifact、運用手順から古い reference を削除する。
動いている古い session は、アプリ資格情報の健全性を証明しません。Session と API ID は認証の別レイヤーであり、古い session では新しいログイン経路を検証できません。
UnifyPort が担う範囲
UnifyPort の通常 Telegram アカウント認証も同じアプリ境界を使います。Code モードは provider_data.api_id、provider_data.api_hash、provider_data.phone が必要で、QR モードも API ID と API hash が必要です。Telegram 認証ガイドに code、QR、2FA、session の実際の手順があります。
Telegram がアプリ資格情報を拒否している場合、UnifyPort はその資格情報を有効化したり、Telegram API ID を代わりに作成したり、BotFather token を通常アカウント session に変えたりできません。先に Telegram 側の資格情報を解決し、該当する認証フローを再開してください。
認証後の inbound message は正規化された message.received eventとして受信できます。Telegram-to-Slack relay の build guideはその後の webhook 実装であり、資格情報復旧とは分離してください。
制限とトレードオフ
独立した bot identity でよい場合は公式 Bot API を使ってください。Bot token はそのモデル向けですが、既存の通常アカウントとして動作するものではありません。
MTProto のユーザー認証は、既存アカウント identity が本当に必要な場合だけ選びます。機密性の高い session material が生成され、Telegram API Terms と自動的な abuse control の対象であり続けます。非公式インターフェースはこれらのルールをなくさず、拒否された API ID の回復や未承諾の一括送信を保証しません。
FAQ
Telegram API_ID_PUBLISHED_FLOOD の原因は何ですか?
Telegram は、API ID が公開された場合に auth.exportLoginToken がこのエラーを返すと説明しています。また、公開アプリで制限付きサンプル API ID を使うことも明示的な発生条件です。
待てば API_ID_PUBLISHED_FLOOD は直りますか?
Telegram は待機秒数付きの FLOOD_WAIT_X として説明しておらず、解除時間も公開していません。再試行を止め、サンプルや借用した資格情報を自分のペアに置き換え、自分の ID が公開された場合は公式サポートを利用します。
API_ID_INVALID と同じですか?
いいえ。API_ID_INVALID は API ID/API hash の組み合わせが無効です。API_ID_PUBLISHED_FLOOD は ID が公開済み、または用途に不適切と判定された状態です。
BotFather token で API ID を置き換えられますか?
通常アカウント認証では置き換えられません。Bot token は Bot API の bot を認証します。既存ユーザーの code/QR login には API ID と API hash が必要です。
環境比較のため API hash を log に書いてよいですか?
いいえ。一方向 fingerprint または secret version ID を比較してください。API hash、認証コード、QR token、2FA 情報、session export は log、ticket、screenshot、公開例に残しません。
次のステップ
Telegram の公式アプリ設定ガイドで、自分の API ID を使っているか確認してください。出所を修正したら、UnifyPort Telegram 認証ガイドに従い、code または QR 認証を1回だけ制御して実行します。
公式情報源
- Telegram: Creating your Telegram Application
- Telegram: auth.exportLoginToken errors
- Telegram: Error handling
- Telegram: API Terms of Service
- Telegram: User Authorization
情報源と製品ドキュメントの確認日:2026-08-10。