.Net Core 推送訊息至 Telegram Channel

  1. 建立 Telegram Bot
  2. 取得 Telegram Bot Chat ID
  3. .Net Core 專案建置、測試
  4. 讓 Bot 在頻道發送訊息
  5. 參考文件

建立 Telegram Bot

搜尋 BotFather

  1. /start
    Telelegram 會列出指令說明

  2. /newbot
    設定 bot 名稱、並取得 Bot Token

取得 Telegram Bot Chat ID

呼叫 https://api.telegram.org/bot{Token}/getUpdates

因尚無對話紀錄 所以取無資料

{
   "ok":true,
   "result":[
      
   ]
}

回到 Bot 對話介面,傳個訊息,有對話紀錄後
重新呼叫 https://api.telegram.org/bot{Token}/getUpdates
即可取得 ChatID

{
   "ok":true,
   "result":[
      {
         "update_id":721899236,
         "message":{
            "message_id":2,
            "from":{
               "id":6111545582,
               "is_bot":false,
               "first_name":"Leo",
               "last_name":"Zheng",
               "language_code":"zh-hans"
            },
            "chat":{
               "id":6111545582,
               "first_name":"Leo",
               "last_name":"Zheng",
               "type":"private"
            },
            "date":1701156157,
            "text":"HI"
         }
      }
   ]
}

取得 Bot ChatID 6111545582

.Net Core 專案建置、測試

準備一個 .Net Core API 專案 or Console 專案 可供測試即可

  1. 安裝 Telegram.Bot Nuget 套件
dotnet add package Telegram.Bot -v 19.0.0
  1. 在此用 API 測試
[HttpGet("SendTelegramBotMsg")]
public async Task<string> SendTelegramBotMsg()
{
    var botClient = new TelegramBotClient("6765457318:AAG47n_tNSvTijh8MN24__9hAwDs2zsL94U");
    await botClient.SendTextMessageAsync("6111545582", "bot Test");

    return "OK";
}

讓 Bot 在頻道發送訊息

  1. 新建 Telegram 頻道
  2. 將剛剛 新建的 Bot 設為頻道 Admin
  3. 查看 頻道 ChatID,網頁版可以查看 ChatID

備註: -2030473502 , 頻道ChatID 開頭前綴需加100,故為 -1002030473502

  1. 此時調整程式 ChatID,因發送通知改為發送到群組

    [HttpGet("SendTelegramBotMsg")]
    public async Task<string> SendTelegramBotMsg()
    {
     var botClient = new TelegramBotClient("6765457318:AAG47n_tNSvTijh8MN24__9hAwDs2zsL94U");
     await botClient.SendTextMessageAsync("-1002030473502", "bot Test to channel");
    
     return "OK";
    }
    

參考文件

telegram訊息推播bot
Telegram 官方文件 - Bot API


轉載請註明來源,若有任何錯誤或表達不清楚的地方,歡迎在下方評論區留言,也可以來信至 leozheng0621@gmail.com
如果文章對您有幫助,歡迎斗內(donate),請我喝杯咖啡

斗內💰

×

歡迎斗內

github