[Golang] 創建BOT&發送訊息

創建BOT,加入好友並取得token

打開Telegram搜尋:
@BotFather

加入好友後,輸入/start 會提供些指令讓你選擇。

  • /start :用戶開始和機器人進行交互
  • /help :返回幫助信息
  • /setting :返回機器人的設置界面用戶在首次向機器人發信息之前會看到/start按鈕,在菜單中(機器人信息頁)可以看到幫助和設置鏈接。

創建BOT過程如下, 成功會返回一段訊息:

藍框: 用來加該機器人好友的,建議直接點擊加入,先成為好友。
紅框: 該bot的token,主要用來操控BOT,要記住!!

取得chat id

需要chat id,bot才知道要傳送訊息給哪個使用者或群組。

首先,加入Bot好友後,傳一個訊息給這支BOT,例如”testbot”,發送成功後打開瀏覽器輸入

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

範例:
https://api.telegram.org/bot5630000628:AAH2XXXXXXXXXXXXXXXXXXXXXXXXXXXXn2zo/getUpdates

會看到json資料,從裡面我們可以得到chat_id,建議先利用這網站把Json轉成可讀性高一點
JSON格式化
轉成功後再貼在記事本,搜尋剛剛傳給bot的訊息:testbot
會看到有一段,像下圖的訊息

取得那段數字就好。

使用程式發送訊息

把chat id和token帶入下方的const內。

並開啟終端機輸入:go get -u github.com/go-telegram-bot-api/telegram-bot-api

package main

import (
    "fmt"
    tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api"
    "log"
)
var bot *tgbotapi.BotAPI

const (
    chatID   = 1234567    //要傳送訊息給指定用戶
    youToken = "5630000628:AAH2XXXXXXXXXXXXXXXXXXXXXXXXXXXXn2zo"
)

func main() {
    var err error
    bot, err = tgbotapi.NewBotAPI(youToken)
    if err != nil {
        log.Fatal(err)
    }
    bot.Debug = false

    link := fmt.Sprintf(`<a href="%s">[google]</a>`, "https://www.google.com.tw/")
    sendMsg(link)
}

func sendMsg(msg string) {
    NewMsg := tgbotapi.NewMessage(chatID, msg)
    NewMsg.ParseMode = tgbotapi.ModeHTML   //傳送html格式的訊息
    _, err := bot.Send(NewMsg)
    if err == nil {
        log.Printf("Send telegram message success")
    } else {
        log.Printf("Send telegram message error")
    }
}

使用程式運行發送後就會收到 google 連結的的訊息了

發佈留言