Bot API 基礎
拿到 Token 之後,Bot 的所有動作都是透過呼叫 Telegram 的 Bot API(一組 HTTPS 介面)完成。這一頁說明幾個必須理解的核心觀念,之後不論用哪種程式語言開發都用得到。
Token 與 API 網址
每一支 Bot 的 API 請求都會帶著它的 Token,格式為:
例如要讓 Bot 主動發送一則訊息,可以呼叫 sendMessage 方法:
curl "https://api.telegram.org/bot<TOKEN>/sendMessage" \
-d chat_id="<聊天室ID>" \
-d text="Hello from my bot!"
Update:Bot 如何「收到」訊息
使用者傳給 Bot 的每一則訊息、按下的按鈕、加入群組等事件,都會被包成一筆 Update(更新)。Bot 程式的核心工作,就是不斷取得新的 Update、判斷內容,再呼叫對應的方法回覆。取得 Update 有兩種方式:
Polling(輪詢)
程式主動、重複呼叫 getUpdates 方法,詢問 Telegram「有沒有新訊息?」。實作簡單,不需要對外開放的伺服器與 HTTPS 憑證,適合開發階段或個人小型 Bot。
Webhook
改由 Telegram 主動把新的 Update 用 HTTPS POST 請求推送到你指定的網址(需要有效的 HTTPS 憑證)。即時性較好、也比較省資源,適合正式上線、流量較大的 Bot。設定方式是呼叫 setWebhook 方法並帶上你的伺服器網址。
| Polling | Webhook | |
|---|---|---|
| 需要公開伺服器 | 不需要 | 需要(含 HTTPS) |
| 即時性 | 稍有延遲(依輪詢頻率) | 幾乎即時 |
| 適合場景 | 開發測試、小型 Bot | 正式環境、高流量 Bot |
常用方法一覽
| 方法 | 用途 |
|---|---|
getMe |
確認 Token 是否有效,取得 Bot 自身資訊 |
sendMessage |
發送文字訊息 |
sendPhoto / sendDocument |
發送圖片/檔案 |
answerCallbackQuery |
回應使用者點擊的按鈕 |
setWebhook / deleteWebhook |
設定或取消 Webhook |
getUpdates |
以 Polling 方式取得新訊息 |
完整方法清單與參數說明,請查閱官方 Bot API 文件。
下一步
理解基本觀念後,接著閱讀 用 Python 開發 Bot,實際寫出一支會回覆訊息的 Bot。