Человек нажимает кнопку, например Записать себя. Далее ему бот отправляет форму для заполнения, как сделать что бы бот ожидал сообщение от пользователя после того как он(бот) отправил свое сообщение с формой? Потом желательно как-то сделать, что бы можно было работать с этим сообщением.
1. перед тем как отправить пользователю сообщение вносите в БД информацию о нем, включающую в себя:
- идентификатор пользователя
- инвормацию об отправленном сообщении
- указание на роутер/функцию/хандлер, которую необходимо вызвать при получении ответа от данного пользователя
2. при получении сообщения от любого пользователя посмотреть в БД данные из пункта 1. Если мы не ждем ответа от пользователя, то обрабатывать сообщение стандартно. Если же ждем:
- передаем сообщение на обработку роутеру/функции/хандлеру указанному для данного сообщения в пункте 1.
3. сам роутер/функция/хандлер это некий програмный код, ориентированный на обработку сообщений определенного типа. При этом типов сообщений может быть несколько, например ожидание ответа на различные вопросы и предложения могут обрабатываться разными роутерами/функциями/хандлерами. Сам же хандлер обрабатывая сообщения может по необходимости желать следующее:
- проверять, является ли данный ответ от пользователя действительным ответом на заданный вопрос/предложение
- если является то выковыривать из ответа пользователя нужные данные
- сохранять полученную информацию в БД для дальнейшего использования в контексте данного пользователя.