package main import ( "github.com/gin-gonic/gin" "github.com/go-telegram-bot-api/telegram-bot-api/v5" "io" "encoding/json" ) func (ses *session) setWebhookForBot(token string) (string, error) { bot, err := tgbotapi.NewBotAPI(token) if err != nil { return "", err } webhook, err := tgbotapi.NewWebhook("https://" + ses.WebhookDomain + "/api/telegram/" + token) if err != nil { return "", err } _, err = bot.Request(webhook) if err != nil { return "", err } return bot.Self.UserName, nil } func (ses *session) unsetWebhookForBot(token string) error { bot, err := tgbotapi.NewBotAPI(token) if err != nil { return err } _, err = bot.Request(tgbotapi.DeleteWebhookConfig{}) if err != nil { return err } return nil } func (ses *session) telegram(c *gin.Context) { var update tgbotapi.Update token := c.Param("token") bot, err1 := tgbotapi.NewBotAPI(token) body, err2 := io.ReadAll(c.Request.Body) err3 := json.Unmarshal(body, &update) if err1 != nil || err2 != nil || err3 != nil { return } if update.Message != nil { if update.Message.Chat.ID > 0 { val, err := ses.getMessage(token) if err != nil { val = "❌ Couldn't get start message for this bot. If you're its owner, try to register it again at " + ses.WebhookDomain } msg := tgbotapi.NewMessage(update.Message.Chat.ID, val) msg.ParseMode = "HTML" bot.Send(msg) bot.Send(tgbotapi.NewMessage(update.Message.Chat.ID, "Made with "+ses.WebhookDomain)) } } }