Пишу телеграм-бота на Golang, используя telegram-bot-api. Способ общения с апи телеграма - long-polling. Есть некий канал, который получает update-данные с телеграма (см код ниже). Задача - добавить возможность триггера бота (что-то типа endpoint), чтобы тот отправлял сообщение в канал с определенным chatId. Например, с другого микро-сервиса приходит запрос, в теле которого приходит userId, бот ищет в БД пользователя с таким же userId, берет его chatId и отправляет туда сообщение. Собственно, не могу понять, как мне принимать на сервере с телеграм-ботом такой "триггер". Возможно, лучше стоит использовать веб-хуки, но я все равно не понимаю, как и там это реализовать. Подскажите, пожалуйста, какие решения есть для поставленной задачи?
func main() {
bot, err := tgbotapi.NewBotAPI("MyAwesomeBotToken")
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, err := bot.GetUpdatesChan(u)
for update := range updates {
if update.Message == nil { // ignore any non-Message Updates
continue
}
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)
}
}