Telegram繁體中文下載站
機器人開發· Telegram技術團隊

如何建立Telegram機器人並取得API Token?

詳細步驟教你透過 BotFather 建立 Telegram 機器人並取得 API Token,含平台差異與安全注意事項。

#機器人#API金鑰#BotFather#設定步驟#開發工具
如何建立Telegram機器人, 取得API Token步驟, Telegram機器人設定方法, BotFather用法, Telegram機器人開發教學, API Token獲取指南, 建立機器人常見問題, Telegram自動回覆機器人, 機器人權杖取得, Telegram機器人與一般帳號區別

功能定位與前置知識

Telegram 機器人本質上是運行在伺服器端、透過 Bot API 與使用者互動的自動化程式。每個機器人都依賴一組唯一的 API Token 作為身份憑證,用以向 Telegram 伺服器發送請求。這組 Token 的敏感性與密碼無異——一旦外洩,第三方即可完全控制你的機器人。正因如此,從建立的第一刻起就應將 Token 視為最高機密。

建立機器人的正規管道只有一個:通過 Telegram 官方機器人 BotFather。BotFather 負責管理所有機器人的創建、Token 發放、名稱修改、頭像設定等後勤作業。這套流程自 2015 年上線以來,核心機制幾乎未曾變動,因此以下步驟具有長期有效性,即使未來新版 Telegram 推出,操作邏輯仍將保持一致。

功能定位與前置知識
功能定位與前置知識

前置條件與環境確認

你只需要一個活躍的 Telegram 帳號,無論使用桌面版(Windows/macOS/Linux)、移動端(Android/iOS)或網頁版,均可操作 BotFather。建議在穩定的網路環境下進行,因為 BotFather 的回覆有時會因網路延遲而延遲數秒——若遇到無回應,先檢查網路連線往往能解決問題。

此外,建議提前構思機器人的兩個名稱:顯示名稱(Bot Name)和用戶名(Username)。顯示名稱會出現在對話標題與機器人資料中,可隨時修改;用戶名則必須以 bot 結尾(例如 weather_bot),用於搜尋與分享,且一經建立即不可與其他機器人重複。建立後雖可透過 /setusername 修改,但舊用戶名會立即失效,可能導致既有使用者無法找到機器人,因此初次命名時應謹慎選擇。

建立機器人並取得 API Token:完整步驟

第一步:啟動 BotFather

在 Telegram 搜尋欄輸入 @BotFather,點擊進入官方機器人(注意辨識藍色勾勾驗證標記)。進入對話後,按下畫面下方的 Start 按鈕,或手動發送 /start 指令。BotFather 會回覆一段歡迎訊息,並列出可用命令清單。這些命令全部以斜線 / 開頭,當你輸入部分字母時,Telegram 會自動提示候選命令,在移動鍵盤上尤其方便。

第二步:使用 /newbot 建立新機器人

輸入 /newbot 並發送。BotFather 會依序要求你提供兩項資訊:

  1. 機器人顯示名稱(Bot Name):例如「天氣小幫手」。此名稱會出現在對話標題與機器人資料中,可隨時透過 /setname 修改,不影響使用者體驗。
  2. 機器人用戶名(Bot Username):必須以 bot 結尾,例如 weather_bot 或 WeatherHelperBot。此用戶名是全球唯一的,建立後可更改(透過 /setusername),但舊用戶名將立即釋放,可能導致既有連結失效。建議在命名前先用搜尋確認是否已被佔用。

以下是一次完整的範例對話,你可以對照自己的操作流程:

您: /newbot
BotFather: Alright, a new bot. How are we going to call it? Please choose a name for your bot.
您: 天氣小幫手
BotFather: Good. Now let's choose a username for your bot. It must end in `bot`. Like this, for example: TetrisBot or tetris_bot.
您: WeatherExampleBot
BotFather: Done! Congratulations on your new bot. You will find it at t.me/WeatherExampleBot.
You can now add a description, about section and profile picture for your bot, see /help for a list of commands.
Use this token to access the HTTP API: 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11
Keep your token secure and store it safely, it can be used by anyone to control your bot.

第三步:記錄並儲存 API Token

BotFather 回覆中的最後一行即為你的 API Token,格式固定為 數字:英文數字混合。收到後應立即複製到安全位置,例如密碼管理器、加密筆記或專屬的環境變數檔案(如 .env)。 Token 是機器人存取的唯一金鑰,一旦遺失,無法從 BotFather 直接查詢舊值,只能透過 /revoke 或 /token 命令重置(後續會詳細說明)。

範例操作:在桌面版上點擊 Token 訊息使其可選取,按 Ctrl+C(Windows/Linux)或 Cmd+C(macOS)複製;在手機上長按訊息後拖曳選取範圍。切勿將 Token 寫死在公開程式碼(如 GitHub 公開儲存庫)中,否則任何自動化掃描工具都能找到並濫用。經驗顯示,Token 一經公開,數分鐘內就可能被盜用。

Token 管理:查詢、重置與安全

查詢當前 Token

若你忘記 Token 但尚未清除與 BotFather 的對話紀錄,向上滾動即可找到當初建立時的回覆。若對話已遺失,可在 BotFather 中輸入 /token,它會列出你所有機器人;選擇目標機器人後,BotFather 會顯示當前有效的 Token。請注意,這個操作等同於在對話中暴露 Token,建議在安全的私人裝置上執行,並在查詢後立即複製至安全儲存,然後刪除該條對話訊息(如果你有疑慮的話)。

重置 Token

一旦懷疑 Token 已洩漏(例如誤上傳至公開倉庫、開發環境遭入侵、或發現異常 API 調用),應立即執行重置。在 BotFather 中使用 /revoke 命令,選擇目標機器人後,BotFather 會產生一組全新的 Token,舊 Token 立刻失效。重置後,所有依賴舊 Token 的服務(如 Webhook、輪詢程式)將中斷,你必須更新所有部署端的 Token 值。

經驗性觀察:從 Token 洩漏到被自動化平台掃描並濫用,時間可能僅需數分鐘。因此建議在偵測到洩漏的當下立刻執行 /revoke,不要猶豫。另外,對於生產環境的機器人,即使沒有明顯洩漏跡象,也建議每隔 3–6 個月定期旋轉一次 Token,以降低長期曝露的風險。

平台差異與操作提示

BotFather 的操作在桌面版、iOS、Android 及網頁版上幾乎一致,但複製 Token 等細節略有不同,以下分類說明:

  • 桌面版(Telegram Desktop):命令輸入框在左下角。選取 Token 時,先點擊訊息使其進入選取模式,再按 Ctrl+C(Windows/Linux)或 Cmd+C(macOS)複製。若訊息未展開,可雙擊訊息放大。
  • iOS / iPadOS:長按 Token 訊息觸發選取功能,拖曳選擇範圍後點擊「拷貝」。若訊息過長,可先點擊訊息展開全文再選取。
  • Android:長按訊息同樣可選取文字,部分第三方鍵盤可能干擾選取,建議使用內建選取工具。若選取範圍不精準,可先複製整條訊息再手動編輯。
  • 網頁版 (web.telegram.org):使用滑鼠選取 Token,按右鍵選擇「複製」。部分瀏覽器可能阻擋自動複製功能,但仍可手動選取後使用快捷鍵(Ctrl+C 或 Cmd+C)。

不論使用哪個平台,複製後建議立即貼到安全儲存工具中,並清空剪貼簿(尤其在使用共用電腦時)。

常見故障與排解

問題一:BotFather 無回應

可能原因包括 Telegram 伺服器暫時不穩,或你的帳號被暫時限制(例如短時間內建立過多機器人)。首先檢查網路連線,稍候 1–2 分鐘後重新發送 /start。若持續無回應,嘗試登出並重新登入 Telegram。如果問題依然存在,可參考 Telegram 官方狀態頁面確認服務是否正常。

問題二:用戶名已被佔用

BotFather 會明確提示「Sorry, this username is already taken. Please try something else.」。你需要更換用戶名。建議加入數字或底線以提高唯一性,例如 WeatherHelper_2024_bot。注意用戶名長度限制為 5–32 字元(不含 bot 部分),且只能使用拉丁字母、數字和底線。你可以先想 2–3 個備用名稱,避免反覆嘗試。

問題三:Token 遺失且無法從 BotFather 對話歷史找回

如果遺失對話且無法向上滾動,請使用 /token 命令重新取得。若此舉也失敗(極少見,例如 BotFather 暫時故障),可以使用 /revoke 重置 Token。重置後所有依賴舊 Token 的服務需更新,這是保護機器人的最後手段。

適用場景與不適用場景

適用場景

  • 開發個人或企業用的自動回覆機器人(客服、通知、排程提醒)
  • 建立串接第三方服務(如天氣、翻譯、資料查詢)的資訊型 Bot
  • 學習 Telegram Bot API 的入門練習,驗證 API 呼叫流程
  • 建立群組管理機器人(過濾垃圾訊息、歡迎新成員、管理員命令)
適用場景
適用場景

不適用場景

  • 需要即時雙向通訊(如視訊通話)—— Bot 僅能發送訊息,無法發起或接收通話
  • 需要模擬真人帳號的行為—— Bot 有明確標示且受 API 限制,無法偽裝成真人
  • 需要批量自動建立大量機器人—— Telegram 對每個帳號建立的機器人數量有隱性限制(經驗性觀察約為 20–50 個),濫用可能導致帳號被限制或要求手機驗證

最佳實踐清單

  • 權限最小化:在 BotFather 中為機器人設定指令清單(/setcommands),只暴露必要指令,避免使用者誤用或攻擊者利用未公開指令。
  • Token 隔離:將 Token 儲存在環境變數或金鑰管理服務(如 HashiCorp Vault、AWS Secrets Manager)中,不要硬編碼於程式碼。
  • 定期旋轉:對於生產環境的機器人,建議每隔 3–6 個月執行一次 /revoke 並更新部署,降低長期 Token 洩漏風險。
  • 監控日誌:記錄所有 API 請求的來源 IP 與時間,若發現異常訪問(如來自未預期的地區或大量請求)應立即重置 Token。
  • 使用 Webhook 時啟用密鑰驗證:在設定 Webhook 時傳遞 secret_token 參數,確保請求確實來自 Telegram 伺服器,防止偽造請求。
  • 區分開發與正式機器人:建立兩個獨立的 Bot 帳號,分別使用不同的 Token,避免開發過程中的測試訊息干擾正式服務,也防止正式 Token 在除錯過程中意外曝光。

驗證與測試

取得 Token 後,建議立即進行簡單測試以確保 Token 有效,並確認網路連線可達 Telegram API 伺服器。使用任何 HTTP 客戶端(如瀏覽器、curl、Postman)發送 GET 請求至:

https://api.telegram.org/bot<YOUR_TOKEN>/getMe

將 <YOUR_TOKEN> 替換為你的完整 Token(包含冒號前的數字)。預期回傳 JSON 如下,表示 Token 有效且機器人已就緒:

{"ok":true,"result":{"id":123456789,"is_bot":true,"first_name":"你的機器人名稱","username":"your_bot_username"}}

若回傳 {"ok":false,...},表示 Token 無效或格式錯誤。請檢查是否遺漏了冒號前的數字、多餘空格,或使用了舊 Token(已被撤銷)。這個測試不涉及任何持久化狀態,可隨時執行,是開發階段最快速的驗證方式。

真實案例模擬

假設你想建立一個「每日新聞摘要機器人」,完整的操作流程如下:

  1. 在 BotFather 中建立機器人,取名「每日新聞小幫手」,用戶名設定為 DailyNewsDigestBot(確保未被佔用)。
  2. 複製 Token 並存入伺服器的環境變數 TELEGRAM_BOT_TOKEN,例如在 Linux 系統中寫入 ~/.bashrc 或使用 Docker 環境變數。
  3. 撰寫 Python 程式碼,使用 python-telegram-bot 程式庫,設定 Webhook 指向你的伺服器(需有效 HTTPS 憑證)。
  4. 在 BotFather 中透過 /setcommands 加入 `/start`、`/subscribe`、`/unsubscribe` 等命令,並提供簡短說明。
  5. 上線後,使用者發送 /start 即開始接收每日新聞。若日後發現有異常請求(例如來自非預期 IP),立即在 BotFather 執行 /revoke 並更新伺服器 Token,確保安全。

這個案例涵蓋了從創建、部署到維運的完整生命週期,可作為你建立其他機器人的參考藍圖。

問答集(FAQ)

可以修改已建立的機器人用戶名嗎?

可以。在 BotFather 中使用 /setusername 命令,選擇目標機器人後輸入新的用戶名即可。請注意,舊用戶名將立即失效,且新用戶名不可與其他機器人重複。這意味著所有使用舊用戶名的連結(例如 t.me/oldname)將無法再訪問你的機器人,因此變更前建議先通知既有使用者。

Token 可以重複使用於多個服務嗎?

技術上可以,但強烈不建議。所有使用同一 Token 的客戶端都會互相干擾(例如 Webhook 只能設定一個 URL;輪詢模式下的多個程式可能搶佔更新)。建議每個部署環境(開發、測試、正式)使用獨立的機器人和 Token,避免互相影響。

一個 Telegram 帳號可以建立多少個機器人?

Telegram 並未公佈硬性上限,但經驗性觀察顯示,單一帳號建立超過 50–100 個機器人後,可能觸發帳號限制作業(如要求手機驗證或暫時限制建立權限)。建議只建立真正需要的機器人,並定期清理未使用的(使用 /deletebot 命令)。

建立機器人後可以刪除嗎?

可以。在 BotFather 中使用 /deletebot 命令,選擇目標機器人後確認刪除。刪除後該機器人立即停止回應,且用戶名會釋放供其他機器人使用。注意:刪除操作不可逆,所有對話紀錄和設定將永久遺失,因此在執行前請確保不再需要該機器人。

如何確保 Webhook 的安全性?

在設定 Webhook 時可傳遞 secret_token 參數,Telegram 會在每次請求的 HTTP 標頭中加入 X-Telegram-Bot-Api-Secret-Token。伺服端應驗證此標頭值與你設定的密鑰一致。此外,強制使用 HTTPS 並搭配有效的 SSL/TLS 憑證(可考慮 Let's Encrypt 免費憑證),確保傳輸過程加密。

結語與下一步

透過 BotFather 建立機器人並取得 API Token 是 Telegram 機器人開發的第一步,也是最關鍵的一步。本文從前置準備、詳細操作、Token 管理、平台差異、故障排除到安全最佳實踐,提供了完整的操作路徑。現在你就可以立即執行 /getMe 測試 Token 有效性,然後選擇熟悉的程式語言(官方推薦 Python、Node.js、Java、Go 等)開始實作功能。

下一步建議閱讀 Telegram Bot API 官方文件,深入了解如何發送訊息、處理回調、設定 Webhook 及使用 Inline 模式。隨著 Telegram 持續更新 API(例如最近加入的貼圖、投票、媒體群組等功能),保持對官方文件的關注將幫助你充分利用平台能力。最後,請務必將 Token 視為機密資訊,建立例行檢查機制(如每月一次 Token 旋轉),確保你的機器人長期穩定且安全地運行。