跳至主要内容

如何使用 Telegram 傳送通知給自己

前言

有時候我們會希望程式在某些事情發生的時候,自動發一則通知給自己,像是排程跑完了、伺服器掛了、或是有人填了表單之類的。

Telegram 其實有提供很方便的 BOT API,做法很簡單,就是用程式發一個 POST 請求去打 Telegram 的 API,就能讓 BOT 傳訊息給你了。

申請 Telegram Bot

  1. 在 Telegram 搜尋 @BotFather 並開啟對話。
  2. 輸入 /newbot,依照指示設定 Bot 的名稱與 username。
  3. 建立完成後,BotFather 會給你一組 BOT Token,格式大概長這樣:
123456789:ABCdefGHIjklMNOpqrsTUVwxyz

請妥善保存,這就是你的 TELEGRAM_BOT_TOKEN

取得 Chat ID

  1. 在 Telegram 搜尋你剛建立的 Bot,點「Start」開始對話。
  2. 隨便傳送一則訊息給 Bot(例如 hello)。
  3. 在瀏覽器開啟以下網址(把 <BOT_TOKEN> 換成你的 Token):
https://api.telegram.org/bot<BOT_TOKEN>/getUpdates
  1. 在回傳的 JSON 中找到 chat.id,這就是你的 TELEGRAM_CHAT_ID,格式大概長這樣:
1234567890

用 API 傳送訊息 (POST)

curl 寫法

curl -X POST "https://api.telegram.org/bot<BOT_TOKEN>/sendMessage" \
-H "Content-Type: application/json" \
-d '{"chat_id": "<CHAT_ID>", "text": "Hello from Telegram Bot!"}'

Google Apps Script 寫法

const TELEGRAM_BOT_TOKEN = '123456789:ABCdefGHIjklMNOpqrsTUVwxyz';
const TELEGRAM_CHAT_ID = '1234567890';

function sendNotify(content){
UrlFetchApp.fetch(`https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage`, {
'method': 'post',
'payload': {
"chat_id": TELEGRAM_CHAT_ID,
"text": content
}
});
}