51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

初试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),
            },
        })
赞(3)
未经允许不得转载:工具盒子 » 初试Golang开发Telegram机器人