- К каждому состоянию привязать шаблоны для прослушивания сообщений
- Для каждого пользователя запоминать текущее состояние
- Начинать прослушивание с корневого состояния
- При получении соответствующего сообщения переходить в нужное состояние (или остаться в текущем)
Реализация для телеграм и не для него ничем не отличается.
Также на сайте можете "хлебные крошки" выводить, или менюшки делать. Так и здесь.
Примеры именно для телеграм могут пригодиться только для формирования конечного меню (перед отправкой пользователю). Ссылку на api вам скинули выше.
artshelom:
Например, есть бот на котором 3 кнопки в основном меню и 2 внутри.
- Новости
- О нас
--Контакты
--Реквизиты
--Назад
- Оставить заявку
Нажал пользователь /start - записали в базе, что данный пользователь в состоянии main (например)
Выбрал он кнопку "О нас" - фиксируем (заменяем) состояние пользователя на about и выводим меню для раздела "О нас"
Нажал кнопку "Назад" - сменили состояние на main и вывели главное меню
Нажал "Оставить заявку" - выставили на состояние read_message и ждем текст от пользователя, после этого фиксируем его и переходим в состояние main
Как вы будете делать на nodeJS это уже дело техники.
artshelom: Это я предложил хранить состояние, которое знает о верхнем уровне и у которого есть коллбэки(или кнопки или действия и т.п) Можно еще что-то хранить.