<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>BOT on Quietbo</title><link>https://quietbo.com/categories/bot/</link><description>Recent content in BOT on Quietbo</description><generator>Hugo -- gohugo.io</generator><language>zh-tw</language><lastBuildDate>Mon, 19 Sep 2022 10:00:42 +0000</lastBuildDate><atom:link href="https://quietbo.com/categories/bot/index.xml" rel="self" type="application/rss+xml"/><item><title>[Golang] 創建BOT&amp;發送訊息</title><link>https://quietbo.com/2022/09/19/golang-%E5%89%B5%E5%BB%BAbot%E7%99%BC%E9%80%81%E8%A8%8A%E6%81%AF/</link><pubDate>Mon, 19 Sep 2022 10:00:42 +0000</pubDate><guid>https://quietbo.com/2022/09/19/golang-%E5%89%B5%E5%BB%BAbot%E7%99%BC%E9%80%81%E8%A8%8A%E6%81%AF/</guid><description>&lt;h2 id="創建bot加入好友並取得token"&gt;創建BOT，加入好友並取得token
&lt;/h2&gt;&lt;p&gt;打開Telegram搜尋:&lt;br&gt;
@BotFather&lt;br&gt;
&lt;img decoding="async" src="https://i.imgur.com/cZZDRgu.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;加入好友後，輸入/start 會提供些指令讓你選擇。&lt;/p&gt;
&lt;ul class="wp-block-list"&gt;
 &lt;li&gt;
 /start :用戶開始和機器人進行交互
 &lt;/li&gt;
 &lt;li&gt;
 /help :返回幫助信息
 &lt;/li&gt;
 &lt;li&gt;
 /setting :返回機器人的設置界面用戶在首次向機器人發信息之前會看到/start按鈕，在菜單中（機器人信息頁）可以看到幫助和設置鏈接。
 &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;創建BOT過程如下, 成功會返回一段訊息:&lt;br&gt;
&lt;img decoding="async" src="https://i.imgur.com/2NosBTo.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;藍框: 用來加該機器人好友的，建議直接點擊加入，先成為好友。&lt;br&gt;
紅框: 該bot的token，主要用來操控BOT，要記住!!&lt;/p&gt;
&lt;h2 id="取得chat-id"&gt;取得chat id
&lt;/h2&gt;&lt;p&gt;需要chat id，bot才知道要傳送訊息給哪個使用者或群組。&lt;/p&gt;
&lt;p&gt;首先，加入Bot好友後，傳一個訊息給這支BOT，例如”testbot”，發送成功後打開瀏覽器輸入&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code class=""&gt;https://api.telegram.org/bot{token}/getUpdates&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;範例:&lt;br&gt;
&lt;a class="link" href="https://api.telegram.org/bot5630000628:AAH2XXXXXXXXXXXXXXXXXXXXXXXXXXXXn2zo/getUpdates" target="_blank" rel="noopener"
 &gt;https://api.telegram.org/bot5630000628:AAH2XXXXXXXXXXXXXXXXXXXXXXXXXXXXn2zo/getUpdates&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;會看到json資料，從裡面我們可以得到chat_id，建議先利用這網站把Json轉成可讀性高一點&lt;br&gt;
&lt;a class="link" href="https://tw.piliapp.com/json/formatter" target="_blank" rel="noopener"
 &gt;JSON格式化&lt;/a&gt;&lt;br&gt;
轉成功後再貼在記事本，搜尋剛剛傳給bot的訊息:testbot&lt;br&gt;
會看到有一段，像下圖的訊息&lt;figure class="wp-block-image"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img decoding="async" src="https://i.imgur.com/NwJIyNx.png" alt="" /&gt; &lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;取得那段數字就好。&lt;/p&gt;
&lt;h2 id="使用程式發送訊息"&gt;使用程式發送訊息
&lt;/h2&gt;&lt;p&gt;把chat id和token帶入下方的const內。&lt;/p&gt;
&lt;p&gt;並開啟終端機輸入:go get -u github.com/go-telegram-bot-api/telegram-bot-api&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="go" class="language-go line-numbers"&gt;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(`&amp;lt;a href="%s"&amp;gt;[google]&amp;lt;/a&amp;gt;`, "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")
 }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;使用程式運行發送後就會收到 google 連結的的訊息了&lt;br&gt;
&lt;img decoding="async" src="https://i.imgur.com/auvOu34.png" alt="" /&gt;&lt;/p&gt;</description></item></channel></rss>