我在 golang 上开发了一个机器人。使用 ubuntu 20.01 OS 在 vds 上启动它,效果很好,但是当我开始调试我的代码时,这是一个问题。因此,我决定将我的 PC 用作 VDS:我打开了一个8443端口等。但是当main.go启动时,我收到一个错误:listen tcp [ip]:8443: bind: The requested address is not valid in its context.我的代码:package mainimport ( "./configuration" "./get_data" "encoding/json" "fmt" tgBotApi "github.com/go-telegram-bot-api/telegram-bot-api" "io/ioutil" "net/http" "strings" "time")var ( NewBot, BotErr = tgBotApi.NewBotAPI(configuration.BOT_TOKEN))func setWebhook(bot *tgBotApi.BotAPI) { webHookInfo := tgBotApi.NewWebhookWithCert(fmt.Sprintf("https://%s:%s/%s", configuration.BOT_HOST, configuration.BOT_PORT, configuration.BOT_TOKEN), configuration.CERT_FILE) _, err := bot.SetWebhook(webHookInfo) if err != nil { fmt.Println(err) }}func main () { fmt.Println("OK", time.Now().Unix(), time.Now(), time.Now().Weekday()) setWebhook(NewBot) message := func (w http.ResponseWriter, r *http.Request) { text, _ := ioutil.ReadAll(r.Body) var botText = get_data.BotMessage{} _ = json.Unmarshal(text, &botText) chatGroup := int64(botText.Message.Chat.Id) botCommand := strings.Split(botText.Message.Text, "@")[0] /*markup := tgBotApi.InlineKeyboardMarkup{ InlineKeyboard: [][]tgBotApi.InlineKeyboardButton{ []tgBotApi.InlineKeyboardButton{ tgBotApi.InlineKeyboardButton{Text: "start"}, }, },我已经成了类似本主题的证书:为 Telegram Webhook 创建和使用自签名证书的简单方法是什么?此外,我试图设置 0.0.0.0 而不是我的公共 IP,然后出现此错误:Bad Request: bad webhook: IP address 0.0.0.0 is reserved
1 回答
婷婷同学_
TA贡献1844条经验 获得超8个赞
该错误bind: The requested address is not valid in its context.
表明该地址不属于您机器上的网络接口。很可能,有一个路由器/负载平衡器/等......具有实际的公共地址,它将流量转发到您的机器。
您需要拆分您使用的地址:
您的本地地址(请参阅
ifconfig
)或0.0.0.0
所有接口作为传递给的地址http.ListenAndServeTLS
传入的作为回调地址的公共地址
NewWebhookWithCert
- 1 回答
- 0 关注
- 1124 浏览
添加回答
举报
0/150
提交
取消