Найти тему
2025 подписчиков

👣 Как написать многоуровневое меню на Go для telegram-бота?


Давайте разберём такой супер-прикладной вопрос.

⏩Самый простой способ использовать пакет: https://github.com/go-telegram-bot-api/telegram-bot-api И дополнение к нему, которой в python-telegram-bot называется ConversationHandler'ы. Они уже реализованы как дополнение к пакету: https://github.com/and3rson/telemux?tab=readme-ov-file

Выглядеть будет примерно так:
mux := tm.NewMux().
AddHandler(tm.NewCommandHandler(
"start",
func(u *tm.Update) {
bot.Send(tgbotapi.NewMessage(u.Message.Chat.ID, "Hello! Say something. :)"))
},
)).
AddHandler(tm.NewHandler(
tm.Any(),
func(u *tm.Update) {
bot.Send(tgbotapi.NewMessage(u.Message.Chat.ID, "You said: "+u.Message.Text))
},
))

⏩Либо можно написать свою поддержку подобных хендлеров.
— Соотносишь команду с хендлером
— Хендлеры заносишь в мапу по ключу команды
— При получении команды от пользователя проверяешь ее наличие в мапе и вызываешь метод хендлера, в который можешь передать ответ и обработать как тебе нужно

Как-то так ¯\_(ツ)_/¯

👣 Как написать многоуровневое меню на Go для telegram-бота?  Давайте разберём такой супер-прикладной вопрос.  ⏩Самый простой способ использовать пакет: https://github.
Около минуты