Telegram是我們團隊主要的通訊軟體, 上面開了很多視窗分別通知不同的系統訊息, 每個人可以依照自己需要注意的視窗開啟通知就好, 今天來說明怎麼使用telegram API:
首先在Telegram搜尋BotFather
, 加他好友, 然後跟他說/newbot
, 他會提示名稱需要是Bot
結尾;
紅框馬賽克的地方是已經建立好的機器人token,
之後點擊 t.me/EvelynTestCoconutBot
就可以開啟跟機器人的對話視窗
Telegram 提供HTTP API getUpdates
可以透過查看Bot的聊天記錄
https://api.telegram.org/bot{$token}/getUpdates
可以在回傳資料中看到Bot所在的chat_id
再使用sendMessage
測試用Bot的角色發送訊息到聊天視窗
https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&text={$message}
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")
}
測試結果
Bot建立之後, 只要把Bot加入視窗中它就可以幫系統發聲, 有警示時會依照情況發送到不同的對話視窗, 讓相關的負責人可以得到第一手的消息;但是系統訊息只有透過一個通訊軟體發送還是存在風險的, 為了避免Telegram異常造成訊息未發出, 目前我們的訊息還有同時發送到Mattermost, 雙重保障!
參考資料: