初试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
分享
二维码
海报
初试Golang开发Telegram机器人
安装依赖库 go get -u github.com/go-telegram-bot-api/telegram-bot-api/v5 创建一个机器人 package main import ( "fmt" "github.c……
<<上一篇
下一篇>>