C# 透過 Telegram Bot 發送訊息
Telegram 完全由杜羅夫(和他的親人、親信)私人擁有,不引入其他投資人,並且號稱絕不出售。維持著 Telegram 軟體日常營運的,是規模極為精簡,但開發實力世界一流的一支技術團隊。在電子前線基金會對聊天軟體安全性的評測中,Telegram 滿足了所有標準。
在本篇文章中,將會建立 Telegram Bot,並以 C# 透過 Private Channel 來發送訊息。
Preparation
- 一個 Telegram 帳戶
New a Bot
- 私訊 @BotFather 並輸入
/newbot
,接著依序輸入 Bot 的名稱、ID,需要注意的是 ID 必須以 bot 結尾,如:example_bot - 若建立成功,@BotFather 會給予我們一個 Token,往後我們便可利用此 Token 透過 HTTPS 發送 Request
Create Channel
由於 Telegram Bot 無法直接私訊使用者,因此必須透過頻道(Channel)來廣播。
- 至 Telegram Chats 畫面,點擊右上角的 New Message 圖示
- 點擊 New Channel
- 輸入 Channel Name,Description 為選填
- 這裡要選擇 Channel Type,因為等等會需要找 Channel Numeric ID,所以暫時先設定為 Public,並給予該 Channel 一個 ID(也就是網址的後綴)
- 接著我們可以選擇是否要將其他使用者加入 Channel,如果不需要則直接 Next
- Channel 建立完成
Add the Bot to Channel
- 進入 Channel 聊天室窗並點擊右上角的圖示
- 點擊 Admin,之後點擊 Add Admin
- 在搜尋欄位輸入 Bot ID,記得要加 @ 符號,如:@example_bot
- 加入 Bot 並設定權限,以本例來說只需要給予 Post Messages 權限即可
- 完成加入
Get the Channel Numeric ID
如果是 Public Channel,我們可以直接透過 Channel ID 來發送訊息。但若是 Private Channel,因為沒有 Channel ID,所以我們必須取得 Channel 的 Numeric ID。
我們先在瀏覽器上輸入這段網址:https://api.telegram.org/bot{token}/sendMessage?chat_id={@channelId}&text=Hello+World
,若前面操作步驟都正確,則應該會回傳一 JSON 如:
1 | { |
其中的 result->chat->id 便是 Channel 的 Numeric ID。在取得這 ID 之後便可以把 Channel 改為 Private。改為 Private 的方式很簡單,把 Share Link 刪掉就可以了!
- 進入 Channel 聊天室窗並點擊右上角的圖示
- 點擊右上角的 Edit
- 點擊 Link 標籤
- 刪除 Link,並按下 Done
- 完成
Send Messages from Bot with C#
首先我們先建立一個 ConsoleApplication 專案,並從 Nuget 將 Telegram.Bot 加入至專案。之後我們便可以透過這方便的 SDK 來利用 Bot 發送訊息,程式碼如下:
1 | using System; |