2026-08-03
Telegram 機器人怎麼做:企業自動化接入指南
想了解 Telegram 機器人 怎麼做?本文從機器人建立、Token 安全、權限設計、Webhook、會話狀態到監控告警,梳理企業自動化接入與上線方法。
一、先定義業務邊界:Telegram 機器人適合接入什麼
企業做 Telegram 機器人,第一步不是選擇開發語言,而是確認哪些互動值得進入機器人通道。機器人更適合處理入口清晰、規則可描述、結果可驗證的任務;如果需求仍是「理解所有問題並完成所有操作」,後續很容易演變成權限失控、狀態混亂且無法審計的通用客服。
可以先將場景劃分為三類,並分別確定響應時效、資料來源和失敗後的處理方式。
| 場景型別 | 典型觸發 | 適合處理的任務 | 主要邊界 |
|---|---|---|---|
| 使用者主動諮詢與查詢 | 命令、文字、圖片、按鈕操作 | 查詢訂單進度、獲取文件、提交線索、檢視帳號狀態 | 以只讀查詢和結構化收集為主;複雜判斷轉交人工 |
| 群組管理與通知 | 成員加入、命令呼叫、規則命中、營運計劃 | 歡迎指引、常見問題響應、活動提醒、違規內容處置 | 先規定機器人能讀取哪些群訊息,以及誰有權執行管理命令 |
| 業務事件訊息 | 訂單、工單、庫存或審批系統產生事件 | 發貨提醒、工單更新、異常告警、待辦通知 | 訊息用於傳遞狀態,不應取代業務系統中的事實記錄 |
Telegram 的平台約束會直接影響方案。機器人無法憑空建立與某位使用者的私聊關係,使用者需要先進入機器人會話並完成啟動操作,通常是點選連結後傳送 /start。因此,企業即使已經掌握使用者帳號,也不能預設向其傳送私信。需要主動推送時,應在註冊、訂閱或服務流程中提前完成會話繫結,並儲存可用的聊天標識、授權狀態和退訂狀態。
群組中的訊息讀取也不是天然全量開放。按照 Telegram 官方機器人文件的機制,啟用隱私模式時,機器人主要接收與自身相關的命令、提及和回覆,而不是群內每一句普通對話。若業務確實依賴全量群訊息,可以調整隱私設定,但必須同步評估資料最小化、群成員告知、日誌留存和誤觸發風險。僅為傳送公告或響應命令時,沒有必要擴大可見範圍。
需求評審時,建議統一使用「觸發源—處理規則—業務系統—回覆動作」四段式描述,而不是羅列功能名。例如:使用者點選「查詢物流」按鈕;服務校驗使用者與訂單的繫結關係;訂單系統返回最新節點;機器人展示結果並提供人工入口。對於群組告警,則可以描述為:監控系統產生異常事件;規則引擎完成去重和級別判斷;值班系統生成事件記錄;機器人向指定群組傳送帶確認按鈕的通知。
這套描述方式可以儘早暴露四類問題:觸發是否可信、規則能否確定執行、業務資料由誰負責、回覆失敗如何補償。任何無法填完整四段鏈路的需求,都不應直接進入開發。
還要把高風險動作從普通對話中拆出來,至少包括以下幾類:
- 資金相關操作,例如退款、補償或餘額調整;
- 群組治理操作,例如移除成員、禁言或修改管理員權限;
- 核心業務變更,例如取消訂單、修改收貨資訊或關閉工單;
- 資料外發操作,例如批次匯出客戶、訂單或會話記錄。
這些動作不應因為識別到一句自然語言就立即執行。最低控制措施是展示對象、影響範圍和關鍵參數,讓操作者再次確認;涉及資金、批次資料或不可逆變更時,還應進入人工審批,並記錄發起人、審批人、原始請求、執行結果和時間。由此形成的業務邊界應明確:機器人負責接收意圖、展示狀態和發起流程,關鍵決策仍由權限系統與業務系統完成。
二、建立機器人與管理 Token:把憑證當成生產金鑰
建立動作本身只需幾分鐘,真正影響生產安全的是帳號識別、憑證儲存和洩露後的處置能力。不要把機器人 Token 當作普通配置項:持有它的一方可以直接呼叫 Bot API,以機器人身份收發訊息或修改部分行為,因此其安全等級應與資料庫密碼、雲平台訪問金鑰一致。
先確認建立入口,避免把金鑰交給仿冒帳號
在 Telegram 中搜索 BotFather 後,不要僅憑頭像或顯示名稱判斷。應同時核對兩個條件:帳號使用者名稱必須精確為 @BotFather,並且帶有 Telegram 的官方認證標識。確認無誤後傳送 /start,再通過 /newbot 建立機器人。
建立過程中需要依次提交兩類名稱:
- 顯示名稱:面向使用者展示,可以使用業務名稱,但應避免與內部環境名混在一起。
- 機器人使用者名稱:全 Telegram 範圍不可重複,只能使用英文字母、數字和下劃線,長度為 5 至 32 個字元,並以
bot結尾。
如果企業同時維護開發、測試和生產環境,建議分別建立機器人,例如在使用者名稱中加入 dev、staging 或 prod。不要讓多個環境共用同一個 Token,否則測試腳本可能向真實使用者發訊息,也會增加審計和故障隔離難度。
補齊基礎資料,減少使用者理解成本
拿到 Token 不代表機器人已經適合開放使用。至少應在 BotFather 中完成以下配置:
| 命令 | 配置內容 | 工程建議 |
|---|---|---|
/setuserpic | 機器人頭像 | 使用可識別且穩定的圖示,避免與個人帳號混淆 |
/setdescription | 詳情頁說明 | 寫清用途、適用範圍和支援入口 |
/setabouttext | 對話開始前的短介紹 | 用一句話說明機器人能完成什麼,不羅列內部能力 |
/setcommands | 命令選單 | 只暴露已上線且長期可用的命令,並保持說明簡短 |
命令選單應與後端實際能力同步發布。若選單中保留已經下線的命令,使用者會把無響應判斷為系統故障;若機器人涉及審批、查詢等業務,還應在介紹中明確資料範圍和人工支援方式。
Token 只在執行時注入,不進入程式碼資產
BotFather 返回的 API Token 應直接進入受控的金鑰儲存鏈路。小型部署可以通過環境變數注入;生產系統更適合使用雲金鑰管理服務或企業內部憑證系統,並限制只有機器人執行身份和少量維運人員可以讀取。
- 禁止把 Token 寫進原始碼、配置模板、映象構建檔案或測試樣例。
- 禁止提交到 Git 倉庫;刪除當前檔案並不能清除歷史提交中的秘密。
- 日誌、異常堆疊和 HTTP 除錯資訊需要脫敏,不應記錄完整 Bot API URL。
- 不要通過群聊、工單評論或截圖傳遞 Token;確需交接時使用受控的金鑰共享通路。
- 開發、測試與生產分別使用獨立機器人和獨立憑證,權限及告警也分別配置。
預先建立洩露處置流程
發現 Token 出現在公開倉庫、日誌、聊天記錄或未知主機後,不應先排查影響再決定是否輪換。正確順序是立即止損:通過 BotFather 的 /revoke,或進入 /mybots 選擇對應機器人,撤銷當前憑證並生成新 Token。
隨後將新值寫入生產金鑰系統,重啟或滾動更新相關實例,並逐項檢查:新 Token 能否呼叫 Bot API、Webhook 是否仍正常接收訊息、後臺任務是否恢復、舊 Token 是否已無法使用。最後清理倉庫歷史、構建快取和日誌副本,審查洩露時間段內的呼叫記錄,並記錄事件原因與修復動作。輪換只有在舊憑證失效且全部執行實例切換完成後,才算真正結束。
三、權限設計:區分平台權限、系統權限與業務權限
企業接入中,機器人「能看到什麼」和「能執行什麼」不應由同一組開關決定。較穩妥的做法是把權限拆成平台、系統、業務三層:平台層控制 Telegram 提供的資料與群管理能力,系統層約束憑證和後端資源,業務層判斷當前使用者是否有權完成具體操作。任何一層放寬,都不能替代其他層的鑑權。
平台層:先按觸發方式決定訊息可見範圍
如果機器人只處理斜槓命令、被回覆的訊息,或者帶有機器人使用者名稱的提及,通常應保留群組隱私設定。這樣機器人不會持續接收群內普通對話,可減少無關資料進入日誌、佇列和模型,也能降低誤觸發及敏感資訊擴散的風險。
只有業務明確依賴普通群訊息時,例如從自然語言中識別工單、告警或合規關鍵詞,才需要通過 BotFather 調整 Group Privacy。配置改變後,應先將機器人移出目標群,再重新邀請入群,避免舊的群成員狀態繼續沿用原配置。上線前要用普通文本、命令、提及和回覆分別驗證,不能只依據 BotFather 顯示的設定判斷是否生效。
群管理員權限也要逐項批准,而不是為了省事全部授予。建議根據實際動作建立權限表:
| 業務動作 | 可能需要的平台權限 | 工程判斷 |
|---|---|---|
| 自動清理違規內容 | 刪除訊息 | 限定適用群、規則範圍和訊息型別,並保留刪除審計記錄 |
| 臨時限制違規成員 | 限制成員 | 設定明確的觸發條件與恢復機制,誤判時應能人工解除 |
| 生成入群入口 | 邀請使用者或管理邀請連結 | 連結應設定用途、有效期和使用範圍,避免成為長期開放入口 |
| 通知、查詢、流程提交 | 通常不需要管理員身份 | 優先以普通群成員執行,避免權限隨部署便利性膨脹 |
系統層:隔離機器人身份與生產憑證
開發、測試和生產環境應使用不同的機器人身份及 Token。僅拆分資料庫而複用同一個 Token,仍可能造成測試程式碼讀取生產訊息、錯誤 Webhook 覆蓋正式地址,或開發日誌洩露生產憑證。環境隔離還應覆蓋回呼地址、訊息佇列、快取、審計日誌和下游 API 帳號。
生產 Token 應作為服務端金鑰管理,只允許部署程序和經過授權的少數維運人員讀取。不要寫入程式碼倉庫、映象構建參數、前端配置或可檢索日誌;異常資訊也不應輸出完整請求地址和請求頭。需要輪換時,應具備更新金鑰、重新部署、驗證回呼和撤銷舊憑證的操作流程。讀取、修改與輪換行為都應留下審計記錄。
業務層:Telegram 身份只是對映入口
使用者名稱可以修改,也可能為空,因此不能用使用者名稱直接授予企業權限。可靠做法是記錄 Telegram 的 user_id,並將其繫結到企業帳號、崗位角色和組織歸屬。
繫結流程應由企業側發起,例如登入內部系統後生成短時繫結憑據,再由使用者傳送給機器人完成關聯。機器人收到操作請求後,先校驗 Telegram 身份對映,再檢查帳號狀態、角色權限、資料範圍和當前群是否允許執行。員工離職、部門調整或群成員變化時,授權關係應能同步失效,而不是永久保留在機器人資料庫中。
涉及付款、批次變更、匯出敏感資料、停用帳號等高風險動作,不應僅憑一次 Telegram 訊息執行。可根據風險增加一次性驗證碼、企業系統二次確認、審批流或人工複核,並向用戶返回待確認對象、影響範圍和過期時間。最終審計記錄至少要能關聯請求人、所在會話、授權依據、操作參數、審批結果和執行狀態。
權限設計的驗收標準不是「機器人可以完成任務」,而是能夠回答三個問題:它為什麼能看到這條訊息,哪個服務可以使用這份憑證,以及當前使用者憑什麼執行該操作。三層權限均有明確邊界,後續接入更多群組和業務流程時才不會依靠不斷追加管理員權限維持執行。
四、Webhook 生產化:驗真、冪等、重試與快速響應
開發環境可以先用 Polling:程序主動拉取更新,不需要公網入口,適合本地斷點除錯和快速驗證。進入生產環境,尤其是訊息量上升或需要多實例部署後,應切換到 Webhook。Telegram 會把更新推送到企業提供的公網 HTTPS 地址,服務不必持續輪詢,也更容易接入閘道器、佇列和統一監控。
公網入口必須啟用 HTTPS,並使用 Telegram Bot API 官方文件允許的對外埠。實際機器人服務不必直接監聽該埠,可以由反向代理、API Gateway 或負載均衡器完成 TLS 終止,再轉發到內網應用。部署前應確認域名解析、證書鏈、閘道器超時、請求體大小限制及防火牆策略;不要假設「瀏覽器能訪問」就等於 Telegram 可以穩定投遞。
Webhook 接收層的職責應儘量收窄:驗證來源、解析更新、登記冪等鍵、寫入佇列,然後立即返回成功。AI 推理、CRM 查詢、工單建立、檔案處理和批次傳送都不應阻塞入口請求。否則,下游一次慢查詢就可能拖長響應時間,引發平台重試,並進一步放大服務壓力。
| 處理階段 | 同步執行 | 非同步執行 |
|---|---|---|
| 入口校驗 | HTTPS、Webhook 金鑰、資料結構與必要欄位檢查 | 異常樣本歸檔與安全分析 |
| 事件登記 | 生成冪等鍵並原子寫入接收記錄 | 補充使用者、群組和業務上下文 |
| 業務處理 | 僅完成入隊並返回 | 模型呼叫、系統查詢、規則判斷與訊息傳送 |
驗真不能只依賴 URL 難以猜測。若企業閘道器支援訪問控制,可再增加網路層限制,但不宜把 IP 白名單作為唯一依據,因為上游地址策略可能調整。
重複投遞必須被當作正常情況處理,而不是異常邊界。例如,同一線索同步給不同銷售人員可以分別執行,但同一接收方不能因重試被重複建單或連續收到相同訊息。
冪等記錄應與任務入隊儘可能放在同一事務中,或採用事務訊息、Outbox 等方式避免「記錄已成功但任務未入隊」。處理狀態至少要區分已接收、執行中、已完成、可重試失敗和終止失敗。重試需設定退避與上限,並按錯誤型別判斷:網路抖動可以重試,參數錯誤和權限拒絕通常應直接進入人工檢查。
- 佇列中保留原始更新、冪等鍵、處理版本、重試次數和關聯業務對象,便於追蹤。
- 超過自動重試能力的任務進入死信佇列,不應靜默丟棄。
- 提供人工補償入口,支援檢視失敗原因、修正資料後重放,並再次執行冪等檢查。
- 傳送側同樣記錄請求與結果,避免接收成功卻無法解釋後續訊息是否真正發出。
生產化的判斷標準不是 Webhook 能收到訊息,而是入口可快速確認、重複事件不會產生重複副作用、下游故障不會拖垮接收層,並且每個失敗任務都有可查詢、可重試、可人工接管的路徑。
五、會話狀態:從關鍵詞回覆升級為可恢復的業務流程
關鍵詞回覆只需要處理當前訊息,多輪業務卻必須回答三個問題:使用者正在辦理什麼、已經走到哪一步、下一條訊息是否仍屬於該流程。只要涉及下單、工單登記、身份核驗、審批或資料收集,就應把對話實現為顯式狀態機,而不是在程式碼中不斷疊加條件判斷。
不要把流程狀態只儲存在機器人程序記憶體中。程序重啟、容器遷移、水平擴容或請求落到另一實例時,記憶體狀態都會失效。使用者看到的結果通常不是明確報錯,而是機器人突然忘記上下文、重複提問,甚至把答案寫入錯誤欄位。這類問題很難依靠重試解決。
最小會話記錄應包含以下欄位:
| 欄位 | 用途 | 工程注意點 |
|---|---|---|
| 主體標識 | 定位使用者、群組或群組內成員 | 群聊中不要只用聊天 ID,應按業務決定是否組合使用者 ID |
| 流程與當前步驟 | 確定正在執行的業務及允許的下一步 | 步驟名應穩定,不要依賴展示文案 |
| 關鍵參數 | 儲存已收集的選項、編號和臨時輸入 | 敏感資訊應最小化儲存,並設定訪問控制 |
| 更新時間與過期時間 | 識別停滯會話並清理臨時資料 | 過期後應進入明確的終止狀態,而非直接刪除全部軌跡 |
| 流程版本 | 區分新舊流程定義 | 發布新版時決定繼續舊流程、遷移狀態或要求重新開始 |
儲存應按資料性質分層。訂單結果、工單編號、授權結論、審批狀態等會影響業務責任的資料,必須寫入持久化資料庫。會話儲存只負責引導流程,業務系統中的記錄才是最終事實來源;恢復會話時,應重新查詢業務狀態,不能僅憑快取判斷訂單是否已建立或權限是否已生效。
狀態推進要採用「校驗當前狀態,再執行副作用,最後提交新狀態」的順序,並處理併發訊息。使用者可能連續傳送兩條訊息,也可能多次點選同一按鈕。每次更新應攜帶會話版本號或使用原子條件更新,防止兩個請求同時推進流程。建立訂單、提交工單等操作還需要業務冪等鍵,避免重複消費同一更新或重試請求產生兩份記錄。
每個流程都應預先設計異常出口,而不是只實現理想路徑:
- 取消:終止當前流程,釋放臨時資源,並說明已經完成和尚未完成的動作。
- 返回:只允許回到定義好的節點;已產生不可逆業務結果時,不能簡單回退介面狀態。
- 超時:會話過期後拒絕沿用舊參數,提示使用者確認業務現狀並重新進入流程。
- 重新開始:建立新的會話實例,同時保留舊實例的終止原因,便於審計和排障。
對跳步輸入也要有確定行為。收到與當前步驟不匹配的文本或按鈕回呼時,不應猜測使用者意圖並強行推進。更穩妥的做法是返回當前可執行操作;如果檢測到業務記錄已變化,則先同步事實狀態,再決定繼續、結束或重建會話。按鈕回呼中可攜帶流程實例 ID、步驟標識和版本資訊,但不能信任客戶端傳回的業務參數,服務端必須再次校驗。
人工接管應作為獨立狀態,而不是一條普通標籤。進入接管後,自動回覆和自動推進必須暫停,但仍可記錄入站訊息。軌跡中要區分機器人訊息、人工回覆、系統動作與業務狀態變更,並儲存接管時間、處理人和結束原因。問題處理完成後,應由人工或受控規則顯式恢復自動化,再依據業務系統現狀選擇繼續原流程或重新開始,不能因為下一條使用者訊息到來就自動解除接管。
驗收時不要只測試正常對話。至少要覆蓋服務重啟、快取過期、重複按鈕、訊息亂序、同一使用者併發操作、流程版本升級和人工接管後恢復。一個可上線的多輪機器人,不是能夠記住幾句話,而是在任何中斷點都能解釋當前狀態,並安全地繼續或結束業務。
六、自動化營運最小架構:事件、規則、標籤與觸達閉環
企業機器人不應把業務邏輯全部塞進 Webhook 處理函式。這樣雖然能快速上線,但規則一多,就會出現程式碼分支難維護、訊息重複傳送、使用者狀態無法追溯等問題。更穩妥的最小架構,是把訊息接入、事件傳遞、規則判斷、狀態儲存和訊息傳送拆開,讓營運配置與底層通訊解耦。
| 模組 | 主要職責 | 工程注意點 |
|---|---|---|
| Telegram 接入層 | 接收命令、普通文本、圖片、按鈕回呼等更新 | 統一解析為內部事件,不直接執行復雜業務邏輯 |
| 事件佇列 | 緩衝入站訊息和業務系統事件 | 保留事件標識,支援削峰、重試和重複消費控制 |
| 規則或工作流引擎 | 判斷觸發條件、選擇人群並推進流程 | 規則版本要可追蹤,變更後能夠回滾 |
| 標籤與會話儲存 | 儲存使用者屬性、訂閱關係、流程節點和最近互動 | 標籤應記錄來源、更新時間及有效期,避免永久累積 |
| 業務聯結器 | 串接商品、訂單、客服工單、會員等系統 | 限制讀取範圍,寫操作需要單獨授權和審計 |
| 傳送服務與營運後臺 | 生成傳送任務、控制速率、配置模板並檢視效果 | 區分生成成功、提交成功、實際失敗和使用者退訂 |
入站鏈路的重點是「理解使用者做了什麼」。接入層收到更新後,應先標準化事件型別,再交給規則引擎。例如,命令可以啟動訂閱流程,文本可進入意圖判斷,圖片可轉交識別或人工審核,按鈕回呼則用於確認選擇。規則執行產生的標籤、表單結果和流程狀態,應寫入儲存層,而不是僅儲存在程序記憶體中。
出站鏈路從企業內部事件開始,而不是從定時群發開始。商品發布、訂單進入配送環節、服務請求狀態變化等事件,經聯結器轉換為統一格式後進入佇列;規則引擎據此篩選接收者,傳送服務再呼叫 Bot API,把內容送到相應使用者或群組。業務系統只負責發布事實,不應直接拼接 Telegram 訊息,否則模板、頻率和退訂策略會散落在多個系統中。
一條可營運的規則不能只有「條件成立就傳送」。至少應包含以下內容:
- 觸發條件:明確由使用者行為、業務事件還是計劃任務啟動,並定義事件去重方式。
- 目標範圍:通過訂閱狀態、地區、客戶階段或歷史行為篩選,同時排除無權限觸達的人群。
- 內容模板:管理變數缺失、語言版本、按鈕連結和模板版本,避免執行時臨時拼裝。
- 傳送約束:設定單位時間內的觸達上限、訊息優先順序及靜默時間段,防止多條流程相互疊加。
- 退出機制:提供明確的停用訂閱入口,並讓退訂結果立即進入後續規則的排除條件。
- 效果記錄:儲存規則版本、命中原因、傳送結果、按鈕互動及後續業務轉化,形成可核查鏈路。
標籤只能輔助決策,不能替代業務事實。例如「已下單」應來自訂單系統,「關注新品」可以來自訂閱或互動行為。兩者的資料可信度、更新頻率和使用權限不同。營運後臺需要展示標籤來源,過期標籤應自動失效;涉及敏感屬性時,還要限制可見範圍及匯出能力。
沒有專門開發團隊時,可用視覺化自動化工具先驗證自動問答、對話表單和主題訂閱,目標是確認流程是否有人使用,而不是立即承載核心業務。一旦需要讀取客戶資料、修改訂單、執行復雜授權,或對持續可用性有明確要求,就應重點檢查平台的資料落點、訪問審計、憑證託管、備份恢復、失敗重放和遷移能力。無法回答這些問題的工具,適合原型驗證,不適合作為長期生產中樞。
閉環是否成立,可以用一個簡單標準判斷:任意一條訊息都能反查觸發事件、所用規則、目標篩選依據、模板版本、傳送結果和使用者後續動作。缺少其中任何一環,營運效果就難以解釋,故障也難以定位。
七、監控告警與上線清單:保證訊息可追蹤、故障可恢復
機器人上線的驗收標準不應只是「能夠回覆訊息」,而應是任意一條更新都能定位處理路徑,傳送失敗後可以判斷原因,並通過重試、補償或人工接管恢復業務。建議為每次入站更新生成統一追蹤標識,並貫穿 Webhook、佇列、業務系統和訊息傳送端。
日誌和指標應該記錄什麼?
chat_id 可採用不可逆雜湊或僅保留末尾片段。日誌中禁止寫入 Token、使用者完整資料、敏感對話原文以及下游系統憑證;排障確需檢視訊息時,應使用受控取樣、欄位遮蔽和限時訪問。
監控應覆蓋三層:入口層觀察 Webhook 請求量、失敗率和響應延遲;執行層觀察佇列深度、最老任務等待時間及重試量;業務層觀察傳送成功率、403 封禁佔比、429 限流次數、會話完成率和人工接管率。僅看介面可用率,無法發現「系統正常但流程沒有完成」的問題。
告警如何分級?
| 級別 | 典型情況 | 處理方式 |
|---|---|---|
| 即時告警 | Webhook 連續失敗、佇列嚴重堆積、生產 Token 失效或被撤銷 | 通知值班人員,暫停非關鍵任務,優先恢復入口和傳送能力 |
| 業務告警 | 單個模板傳送異常、會話完成率下降、人工接管率突增 | 進入營運與研發聯合排查,檢查模板、規則和下游介面 |
| 觀察事件 | 短時延遲升高、少量可恢復重試 | 記錄趨勢,超過持續時間或累計閾值後升級 |
告警條件要同時設定比例、絕對量和持續時間,避免低流量誤報,也避免高流量下少量比例對應大量失敗卻未被發現。
上線前需要做哪些故障演練?
- 模擬使用者封禁機器人產生的 403,確認系統停止無意義重試,並將會話標記為不可觸達。
- 主動觸發傳送頻率限制,驗證按服務端提示退避,而不是立即循環重發。
- 按 Telegram《Bot API》介面約束測試單條文本的 4096 字元邊界,超長內容應在傳送前拆分,並保留分片順序。
- 重複投遞同一個 update_id,確認冪等鍵能夠阻止重複扣款、重複建單或重複觸達。
- 在任務處理中重啟服務,檢查未確認訊息是否重新入隊,執行狀態能否從持久化記錄恢復。
- 模擬業務系統超時,區分「請求未執行」和「執行成功但響應丟失」,後者應先查詢結果再決定是否補發。
- 演練 Token 輪換,確認舊憑證及時失效、新憑證通過金鑰管理系統注入,日誌和配置倉庫中沒有殘留。
失敗訊息應按錯誤性質處理:網路抖動、超時和限流可採用帶抖動的指數退避;參數錯誤、使用者封禁和權限不足通常不應自動重試;業務狀態不確定時進入補償佇列,由對賬任務查詢最終結果。所有重試必須設定次數上限、截止時間和冪等鍵。
Telegram 機器人開發應該選 Polling 還是 Webhook?
本地開發、短期驗證可使用 Polling,部署簡單且便於除錯。生產環境通常選擇 Webhook,以減少輪詢開銷並縮短事件到達時間,但必須具備公網 HTTPS、請求驗真、快速確認、非同步處理和失敗監控。
為什麼機器人在群裡收不到普通訊息?
先檢查機器人的群組隱私模式、管理員權限和訊息型別。啟用隱私模式時,機器人通常只能收到命令、提及或與其相關的訊息;修改設定後還應重新驗證機器人在目標群中的權限。不要通過擴大權限替代業務判斷,只申請處理場景確實需要的訊息範圍。
API Token 洩露後應該怎麼處理?
立即在 BotFather 撤銷並重新生成 Token,更新生產金鑰後重啟或滾動發布相關實例,同時清理快取、構建產物和自動化任務中的舊值。隨後審計 Webhook 配置、傳送記錄和異常來源地址,判斷洩露期間是否存在未授權操作。僅刪除程式碼倉庫中的 Token 不足以消除風險。
機器人訊息為什麼傳送失敗或重複傳送?
傳送失敗常見於使用者封禁、權限變化、限流、內容超長、參數不合法或網路超時。重複傳送通常來自 Webhook 重投、消費者重複執行,或呼叫成功但客戶端未收到響應後再次請求。處理方式是以業務事件 ID 建立冪等記錄,儲存傳送狀態和 Telegram 返回的訊息標識,並讓重試任務先查詢本地執行結果,而不是直接再次傳送。