← 所有文章
教學

Telegram API_ID_PUBLISHED_FLOOD 怎麼修復:復原檢查表

API_ID_PUBLISHED_FLOOD 表示 Telegram 已把授權請求使用的 api_id 判定為公開憑證,或認為它不適合已發布的應用程式。請停止用該憑證重試,確認建置是否複製 Telegram 的受限範例 API ID,或自有應用程式憑證是否已公開,然後遷移到為自己應用程式申請的 API ID。Telegram 沒有為此錯誤公開自助解鎖或輪替 endpoint。

重點整理

  • Telegram 明確指出,開源客戶端內的範例 API ID 只供測試;用於正式發布的應用程式會觸發 API_ID_PUBLISHED_FLOOD
  • Telegram API 條款要求每個應用程式取得自己的 api_id,複製其他專案的憑證並不是正式環境做法。
  • API_ID_INVALIDAPI_ID_PUBLISHED_FLOODAUTH_KEY_DUPLICATEDSESSION_REVOKED 是不同故障。
  • 排查時不要記錄 api_hash、登入驗證碼、QR token 或匯出的 session。
  • 若要連接一般 Telegram 帳號,BotFather token 不能取代 API ID/API hash。

Telegram API_ID_PUBLISHED_FLOOD 的修復方法

這是應用程式憑證問題,不是要求「稍後再試」。Telegram 在 auth.exportLoginToken 文件中把它列為 400:API ID 曾被公開,因此目前不能使用。官方應用程式指南也說明常見原因:Telegram 開源客戶端附帶受限的測試 API ID,但正式應用程式必須使用自己的 ID。

先依錯誤類型分流:

錯誤Telegram 的定義正確處理
API_ID_PUBLISHED_FLOODAPI ID 已公開,或受限範例 ID 被用於測試以外暫停新授權;找出來源,以自有應用程式憑證取代範例或共享憑證
API_ID_INVALIDapi_idapi_hash 組合無效確認兩者屬於同一應用程式,並檢查設定解析是否改動值
AUTH_KEY_DUPLICATED同一 authorization key 被衝突的平行主 session 使用建立新的 authorization key 並重新登入;只換 API ID 並非官方處理方式
SESSION_REVOKED使用者已終止或撤銷授權使用正確應用程式憑證重新授權
FLOOD_WAIT_X嘗試次數過多遵守伺服器提供的等待時間,停止密集重試

本文不重複既有的 API ID/API hash 與 bot token 比較;該文解答如何選憑證,本文處理 MTProto 授權已經失敗後的復原。

第一步:找出 API ID 來源

追蹤設定,但不要輸出原值。只保存安全指紋、部署名稱與設定來源,並檢查:

  1. 建置是否複製 Telegram 開源程式碼中的範例 ID;
  2. 同一組憑證是否出現在公開 repository、套件、image、瀏覽器 bundle、文件範例、issue 或 CI log;
  3. 多個產品或客戶是否共用原本不應共享的應用程式憑證;
  4. 錯誤發生於 code login、QR login,還是兩者皆會發生。

Code 與 QR login 都使用客戶端應用程式的 api_idapi_hash。QR 只改變使用者核准登入的方式,不會取代應用程式憑證。Telegram 的 auth.exportLoginToken 同時要求兩個欄位,也明確可能回傳 API_ID_PUBLISHED_FLOOD

第二步:取得正確的應用程式憑證

請登入 my.telegram.org,開啟 API development tools,建立或查看與有效 Telegram 手機號碼關聯的 API ID 與 API hash。Telegram 目前指出每個號碼只能有一個 API ID。

這個限制表示不能承諾官方未提供的即時輪替流程。若失敗值只是 Telegram 範例或其他專案的憑證,改用自有應用程式憑證就是明確的官方路徑。若自己的 API ID 曾公開且現在被拒絕,請先移除公開內容、保留不含秘密的證據,再透過 Telegram 官方支援處理,不要假設重試會解除狀態。

api_hash 應只留在伺服器端,由憑證儲存服務在執行時注入,不得進入瀏覽器 bundle,並在 log 與錯誤追蹤中遮蔽。QR token、驗證碼、2FA 資料與 session 匯出是不同、同樣敏感的秘密。

第三步:安全遷移與重新驗證

  • 凍結所有繼續使用被拒絕 ID 的新登入。
  • 只在一個測試環境更新憑證 reference,不要把秘密貼進原始碼。
  • 發起一次受控的 code 或 QR 授權,只記錄錯誤類型、請求階段與時間戳記。
  • 成功後先驗證實際連接的帳號,再逐步開放流量。
  • 觀察 FLOOD_WAIT_XSESSION_REVOKED 與意外的重複 session 錯誤。
  • 從部署 manifest、範例、快取 CI artifact 與支援手冊移除舊憑證 reference。

不要用仍可運作的舊 session 證明應用程式憑證正常。Session 與 API ID 位於不同授權層,舊 session 無法驗證新的登入路徑。

UnifyPort 如何承接

UnifyPort 的一般 Telegram 帳號流程使用相同應用程式邊界。Code 授權需要 provider_data.api_idprovider_data.api_hashprovider_data.phone;QR 授權仍需要 API ID 與 API hash。Telegram 授權指南列出 code、QR、2FA 與 session 的實際步驟。

如果 Telegram 拒絕應用程式憑證,UnifyPort 無法讓它變有效、代為建立 Telegram API ID,或把 BotFather token 轉成一般帳號 session。請先解決 Telegram 憑證,再重新啟動相應流程。

授權完成後,入站訊息可以標準化的 message.received event送達。Telegram 到 Slack relay 建置指南呈現後續 webhook 工作流,但應與憑證復原分開。

限制與取捨

若獨立 bot 身分符合需求,請使用官方 Bot API。Bot token 專為此模型設計,也不需一般帳號登入,但不能代表既有一般帳號。

只有產品確實需要一般帳號身分時才使用 MTProto 使用者授權。它會產生敏感 session,並繼續受 Telegram API 條款與自動濫用控制約束。非官方介面不能移除這些規則、保證恢復被拒絕的 API ID,或授權大量發送未經請求的訊息。

FAQ

Telegram API_ID_PUBLISHED_FLOOD 為什麼會出現?

Telegram 文件提供兩個直接線索:auth.exportLoginToken 在 API ID 曾公開時回傳此錯誤;應用程式指南則說,正式應用程式使用開源客戶端的受限範例 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 被識別為公開或不適合目前用途。變更 session 或憑證前先確認錯誤類型。

BotFather token 可以取代被拒絕的 API ID 嗎?

不能用於一般帳號授權。Bot token 只驗證 Bot API 的 bot;既有使用者帳號的 code 與 QR login 仍需 API ID 與 API hash。

可以把 API hash 寫進 log 來比對環境嗎?

不可以。請比較單向指紋或 secret 版本識別碼。API hash、驗證碼、QR token、2FA 資料與 session 匯出都不應進入 log、ticket、截圖或公開範例。

下一步

先依 Telegram 的官方應用程式設定指南確認整合使用自己的 API ID。修正憑證來源後,再按 UnifyPort Telegram 授權指南完成一次受控的 code 或 QR 授權。

來源

來源與產品文件核驗日期:2026-08-10。