@runaway1338

Telegram-bot: как затриггерить отправку сообщения?

Пишу телеграм-бота на 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)
    }
}
  • Вопрос задан
  • 565 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Bynov
Возможно, я неправильно понял Ваш вопрос, но
Попробуйте сделать обычное API в Вашем приложении, при обращении к которому, Вы сможете проверить пользователя по базе и отправить ему сообщение через tgbotapi.NewMessage()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы