【Telegram API】使用 Python 打造 Telegram Notify 新手教學

BY PJ. -2025 年 4 月 18 日
(最後更新於: 2025 年 5 月 10 日)


LINE Notify 於 2025 年 3 月 31 日停止服務, 如果需要單向透過程式傳遞訊息,就要再找其他替代方案。 本篇文章將手把手教你如何透過使用 Python Telegram API,開發即時通知程式。

操作流程

1. 步驟一:在 Telegram 端建立機器人並取得 Token

(1) 首先在 Telegram Contacts 的 Search 欄位,搜尋 BotFather 並打開(要選擇有藍色勾勾的)。

botfather

(2) 跟他申請一個機器人,取得你機器人的 Token,流程如下:

  • Step1:開啟 BotFather 聊天
  • Step2:輸入 /newbot
  • Step3:輸入機器人名稱(例如:Stock revenue)
  • Step4:輸入機器人使用者名稱(需以 bot 結尾,例如:StockRevenue_bot
  • Step5:取得 Token 並複製下來(HTTP API 後的文字即是 Token)

botfather_chat


2. 步驟二:Telegram 端建立群組或與機器人對談

Telegram Bot 可以向 個人或群組 發送訊息,發送訊息的角色就是你的機器人。

  • 可以在 Telegram Contacts 找到你剛剛建好的機器人,並直接與它對談。

telegram_chat

  • 如果想讓機器人在群組發送訊息:
  • 建立一個新群組。
  • 把機器人加入群組。
  • 在群組內對機器人丟一句話(這樣之後才抓得到 Chat ID)。

建立群組方式:

點擊 Chats 右上角的「編輯圖示」 → 選擇「New Group」
Telegram 第一次建立群組需先加入一位真人,可加入朋友後再將他移除


telegram_chat2

telegram_chat3

3. 步驟三:Python 端取得 Chat ID

完成以上步驟後,使用以下 Python 程式碼來取得 Chat ID

import requests

# 替換為您的機器人 Token
BOT_TOKEN = "YOUR TOKEN"

# Telegram API 的 getUpdates URL
GET_UPDATES_URL = f"https://api.telegram.org/bot{BOT_TOKEN}/getUpdates"

# 發送請求以獲取更新
response = requests.get(GET_UPDATES_URL)

# 輸出結果
if response.status_code == 200:
    updates = response.json()
    print("Updates received:")
    print(updates)
else:
    print(f"Failed to get updates: {response.status_code}")

以上會回傳類似下列格式的 JSON:

{
  "ok": true,
  "result": [
    {
      ...
      "message": {
        "chat": {
          "id": -1002277523978,
          "title": "MonthRev",
          ...
        }
      }
    }
  ]
}

其中的 id(例如:-1002277523978)即為群組 MonthRev 的 Chat ID。

telegram_chat_id

簡單來說:
- Token 對應的是機器人(例如:Stock Revenue)
- Chat ID 對應的是聊天對象(可為個人或群組)


4. 步驟四:使用 Python 傳遞訊息

取得 Token 與 Chat ID 後,就可以使用 Python 發送訊息啦!

import requests

BOT_TOKEN = 'YOUR TOKEN'
SEND_MESSAGE_URL = f"https://api.telegram.org/bot{BOT_TOKEN}/sendMessage"

def send_message(chat_id, text):
    payload = {
        "chat_id": chat_id,
        "text": text
    }
    response = requests.post(SEND_MESSAGE_URL, json=payload)
    if response.status_code == 200:
        print("Message sent successfully!")
    else:
        print(f"Failed to send message: {response.text}")

# 測試傳送訊息
GROUP_CHAT_ID = -1002277523978  # 替換為您的群組 CHAT_ID
send_message(GROUP_CHAT_ID, "Hello, this is a test message!")

monthrev


結語

以上就是使用 Python 串接 Telegram Bot API,實現 Notify 功能的完整流程。

可以應用在:

  • 群組推播
  • 自動化排程結果通知
  • 傳遞爬蟲資料
  • 即時錯誤報告等等

歡迎大家參考實作看看!

#python #telegram #notify #api

💬 留言區