[C#] Telegram Bot 開發筆記:如何在 v22.4.4 正確接收訊息

2025-03-07

最近又要用到 Telegram,過去我寫過一些 Telegram 的文章,但是我天真了,我今天測試了 Telegram.Bot v22.4.4 發現跟之前又不一樣了..

又不能直接 Copy and Paste ,所以今天就筆記一下 Telegram.Bot v22.4 如何收訊息


1. 首先你得先安裝 Telegram.Bot v22.4

2.你得先去跟 bot father 申請一組機器人,可以參考這裡 https://sendpulse.com/knowledge-base/chatbot/telegram/create-telegram-chatbot

3. 接下來直接上 code ,這邊主要測試收到訊息後,判斷訊息的類型,如果是文字,會判斷是不是指令,因為指令都是 / 開頭很好辨識

之後我就是 echo 該資訊回去給用戶

static TelegramBotClient _TelegramBotClient; static CancellationTokenSource cts = new CancellationTokenSource(); public static void InitTelegramBotClient() { _TelegramBotClient = new TelegramBotClient("1234567890:AAD98dMandhVhEW4jDEu-LTm6fX9MYL9PKU4",httpClient:default,cts.Token); _TelegramBotClient.OnMessage += _TelegramBotClient_OnMessage; } private static Task _TelegramBotClient_OnMessage(Telegram.Bot.Types.Message message, Telegram.Bot.Types.Enums.UpdateType type) { if (message.Text is not { } text) { Console.WriteLine($"Received a message of type {message.Type}"); _TelegramBotClient.SendMessage(message.Chat, $"Echo: Your Message Type is {message.Type}", replyMarkup: new ReplyKeyboardRemove()); } else if (text.StartsWith('/')) { Console.WriteLine($"Command:" + message.Text); _TelegramBotClient.SendMessage(message.Chat, $"Echo: Your Command is {message.Text}", replyMarkup: new ReplyKeyboardRemove()); } else { Console.WriteLine($"純文字:" + message.Text); _TelegramBotClient.SendMessage(message.Chat, $"Echo: Your Text is {message.Text}", replyMarkup: new ReplyKeyboardRemove()); } return Task.FromResult<object>(null); } static void Main(string[] args) { Console.WriteLine("Test Telegram.Bot v22.4.4"); InitTelegramBotClient(); //因這是console 所以會這樣寫 //如果你是 ASP.net 的服務可以寫在 Service End 的時候 while (Console.ReadKey(true).Key != ConsoleKey.Escape) { cts.Cancel(); // stop the bot } }


 result:



是不是跟之前寫起來感覺完全不一樣了,現在都不用 StartReceiving ,之後有任何更新跟騷操作我再來記錄一下




當麻許的碎念筆記 2014 | Donma Hsu Design.