初试Golang开发Telegram机器人
安装依赖库
go get -u github.com/go-telegram-bot-api/telegram-bot-api/v5
创建一个机器人
package main
import (
"fmt"
"github.com/Olixn/Telegram-Bot-Demo/config"
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
"log"
"net/http"
"net/url"
)
var (
AppConfig *config.Config
ApiEndPoint = "https://api.telegram.org/bot%s/%s"
)
func init() {
AppConfig = config.InitConfig()
fmt.Println(AppConfig)
}
func main() {
var bot *tgbotapi.BotAPI
var err error
fmt.Println(AppConfig.Bot.Token, AppConfig.Bot.EnableProxy)
if AppConfig.Bot.EnableProxy {
proxy, _ := url.Parse(AppConfig.Bot.Proxy)
bot, err = tgbotapi.NewBotAPIWithClient(AppConfig.Bot.Token, ApiEndPoint, &http.Client{
Transport: &http.Transport{
Proxy: http.ProxyURL(proxy),
},
})
} else {
bot, err = tgbotapi.NewBotAPI(AppConfig.Bot.Token)
}
if err != nil {
log.Panic(err)
}
bot.Debug = true
log.Printf("Authorized on account %s", bot.Self.UserName)
u := tgbotapi.NewUpdate(0)
u.Timeout = 60
updates := bot.GetUpdatesChan(u)
for update := range updates {
if update.Message != nil {
log.Printf("[%s] %s", update.Message.From.UserName, update.Message.Text)
msg := tgbotapi.NewMessage(update.Message.Chat.ID, update.Message.Text)
msg.ReplyToMessageID = update.Message.MessageID
bot.Send(msg)
}
}
}
问题
国内开发因为gfw原因是链接不上tg服务器的,所以我们就不可以用tgbotapi.NewBotAPI()
方法来初始化一个机器人,解决办法,开启富强上网(例如v2ray),使用tgbotapi.NewBotAPIWithClient()
方法来创建
proxy, _ := url.Parse("http://127.0.0.1:10808")
bot, err = tgbotapi.NewBotAPIWithClient("Token", "https://api.telegram.org/bot%s/%s", &http.Client{
Transport: &http.Transport{
Proxy: http.ProxyURL(proxy),
},
})
版权声明:
作者:Ne-21
链接:https://blog.gocos.cn/archives/245.html
来源:云淡风轻
文章版权归作者所有,未经允许请勿转载。
THE END
0
二维码
海报
初试Golang开发Telegram机器人
安装依赖库
go get -u github.com/go-telegram-bot-api/telegram-bot-api/v5
创建一个机器人
package main
import (
"fmt"
"github.c……

共有 0 条评论