Как сделать машину состояний Telegram bot, для поочередного приема ответов на несколько вопросов?

Подскажите пожалуйста как сделать машину состояний для приема ответов от пользователей ( нужно принять на пример имя, фамилию и возраст) как я понял нужно использовать БД и шаблоны прослушки, как это можно связать для лучшей работы?
  • Вопрос задан
  • 696 просмотров
Решения вопроса 1
Недавно делал Telegram бота на Google Spreadsheet и Google Apps Script. Там можно хранить данные ключ-значение.

Когда приходит сообщение, известен id пользователя, который его написал. На основе этого id делается префикс для ключей, например, "TG_12345" где 12345 id пользователя.

Возможные диалоги описаны в словаре типа
{ "новый пользователь": [ // название диалога
  {"propmt": "Введите ваше имя"}, // первый вопрос
  {"propmt": "Введите email"},  // второй
  {"propmt": "ник в телеграме"}, // третий
], 
  "ещё какой-то диалог":[/* вопросы */]
}

И хранить надо состояние диалога для текущего пользователя: название, номер шага и заполненные ранее ответы. Итого ключи могут быть такие:
TG_12345_DIALOG: "новый пользователь" // из словаря диалогов
TG_12345_STEP: 2 // текущий шаг, ожидаемый ответ
TG_12345_REPLY_0: "Иван Петров" // полученные ответы
TG_12345_REPLY_1: "ivan@mail.ru"
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
MAKAPOH
@MAKAPOH
многостаночник
Рекомендую посмотреть книги или статьи на тему "автоматное программирование".
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы