Мне необходимо реализовать простой функционал в зависимости от ответа пользователя мне нужно отправлять определенное сообщение и получать на него ответ, как мне в case "да" получать новое сообщение от пользователя?
                  
                  
                  u := tgbotapi.NewUpdate(0)
                  
                  
                  u.Timeout = 60
                  
                  
                  updates := bot.GetUpdatesChan(u)
                  
                  
                  
                  
                  
                  for update := range updates {
                  
                  
                    if update.Message == nil {
                  
                  
                      continue
                  
                  
                    }
                  
                  
                  
                  
                  
                    switch strings.ToLower(update.Message.Text) {
                  
                  
                    case "/start":
                  
                  
                      msg := tgbotapi.NewMessage(update.Message.Chat.ID, fmt.Sprintf(model.MessageHi, update.Message.From.FirstName))
                  
                  
                      bot.Send(msg)
                  
                  
                    case "да":
                  
                  
                      msg := tgbotapi.NewMessage(update.Message.Chat.ID, model.MessageQuestion)
                  
                  
                      bot.Send(msg)
                  
                  
                                                                       // Хочу получить ответ от пользователя
                  
                  
                    case "нет":
                  
                  
                  
                  
                  
                    }
                  
                  
                  }
                  
                  
                
Нужно сохранить id пользователя в стейт, и когда придёт новое сообщение - проверить было ли предыдущее «да» или нет
При помощи конечных автоматом, стейт сохранять куда-то в базу чтобы понимать на каком состоянии он остановился
https://github.com/wintermonth2298/tgbotapi-conversation-extension Может интересно будет) Поглядел идею в питоновской библиотеке. Решение занимает 80 строк, а дальше пользовательский код. Можно скопировать и доработать, т.к там самый простой вариант без обработки изображений и тд
Обсуждают сегодня