iT邦幫忙

2021 iThome 鐵人賽

DAY 25
1

Telegram是我們團隊主要的通訊軟體, 上面開了很多視窗分別通知不同的系統訊息, 每個人可以依照自己需要注意的視窗開啟通知就好, 今天來說明怎麼使用telegram API:

  • 首先在Telegram搜尋BotFather, 加他好友, 然後跟他說/newbot, 他會提示名稱需要是Bot結尾;
    紅框馬賽克的地方是已經建立好的機器人token,
    之後點擊 t.me/EvelynTestCoconutBot 就可以開啟跟機器人的對話視窗
    https://i.imgur.com/3FGvzmt.png

  • Telegram 提供HTTP API getUpdates可以透過查看Bot的聊天記錄

      https://api.telegram.org/bot{$token}/getUpdates
    

    可以在回傳資料中看到Bot所在的chat_id
    https://i.imgur.com/AwvCX5P.png

  • 再使用sendMessage 測試用Bot的角色發送訊息到聊天視窗

      https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&text={$message}
    

    https://i.imgur.com/rO7jYgO.png

  • Bot建立好之後就可以使用套件go-telegram-bot-api/telegram-bot-api開始實作

      bot, err := tgBot.NewBotAPI(TgBotToken)
      if err != nil {
      	Logger.Errorf("NewBotAPI err: %s", err.Error())
      }
    

    加上發送訊息

      	msg := tgBot.NewMessage(TgBotChatID, fmt.Sprintf("踩到限額: %s", reply))
      	_, err := s.Bot.Send(msg)
      	if err != nil {
      		Logger.WithFields(map[string]interface{}{
      			"err:": err.Error(),
      		}).Errorf("Bot.Send")
      	}
    
  • 測試結果
    https://i.imgur.com/5uAxfg5.png

Bot建立之後, 只要把Bot加入視窗中它就可以幫系統發聲, 有警示時會依照情況發送到不同的對話視窗, 讓相關的負責人可以得到第一手的消息;但是系統訊息只有透過一個通訊軟體發送還是存在風險的, 為了避免Telegram異常造成訊息未發出, 目前我們的訊息還有同時發送到Mattermost, 雙重保障!

參考資料:


上一篇
day 24 - 失控的浮點數, decimal套件介紹
下一篇
day 26 - 如何知道我交出了一個有品質的系統
系列文
Let's Go! 解剖Go server開發到部署的過程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言