@avikik

Как обработать ответ telegram bot?

Доброго времени суток, начал осваивать бот в telegram и появился вопрос.
Как обрабатывать ответы от юзера,т.е. бот что-то спросил, а юзер ответил. Как понять что это ответ на этот вопрос?
Я видел ответ на этом сайте как примерно можно это реализовать, но может что-то изменилось с того момента.
За ранее спасибо за ответ!
  • Вопрос задан
  • 7080 просмотров
Решения вопроса 2
AlexNineteen
@AlexNineteen
Привет.
Комментировать
AlekseyNemiro
@AlekseyNemiro
full-stack developer
Бот должен записать куда-нибудь (например в базу), что ожидается от пользователя.

В зависимости от реализации, можно сделать ожидание ответа в отдельном потоке. Т.е. бот отправляет клиенту вопрос и приостанавливает выполнение потока, ожидая ответ от клиента. Но в любом случае желательно сохранять информацию в базу данных.

Также следует учитывать, что пользователь может не прислать ответ. В таком случае нужно ограничить срок ожидания ответа (учитывать дату начала ожидания и проверять дату ответа пользователя).

Пример:
Пользователь: Привет!
Бот: Привет, %username%! Чем я могу помочь? 
// предполагается, что следующий ответ пользователя будет на вопрос, "чем я могу помочь?"
// записываем в базу отметку для текущего conversationId, например ставим next=1
Пользователь: Как обработать ответ telegram bot? 
// бот смотрит в базе, что поле next равно 1, значит нужно найти ответ на вопрос пользователя
Бот:  Секундочку, сейчас поищу на Toster...
Бот: Посмотри здесь: https://toster.ru/q/540828#answer_1235905
Пользователь: Спасибо!
Бот:  Без проблем, обращайся!
Пользователь: Хочу купить билет в Испанию!
Бот:  Отлично! В какой город?
// next=2
Пользователь: Мадрид
// if (next == 2) { это имя города, проверить название города по базе, если город найден }
Бот: На какую дату?
// next=3
Пользователь: 25.06.2018
// if (next == 3) { это дата, проверить правильность указания даты, если все правильно }
Бот: Отлично! Сейчас что-нибудь подберу...
...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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