Все шаблоны

Боты

Telegram-бот

Бот на grammY с базой, сценариями и вебхуком

Простойtelegramgrammyботвебхук

Каркас бота, который переживёт первую тысячу пользователей: диалоги разложены на сцены, состояние лежит в базе, а не в памяти процесса, вебхук проверяет подпись Telegram. Есть админские команды и рассылка по сегменту.

Стек

TypeScriptgrammYPostgreSQL + DrizzleDocker

Что внутри

  • Сценарии диалогов как конечный автомат, а не лапша из if
  • Состояние пользователя в базе — бот можно перезапускать без потерь
  • Вебхук с проверкой секретного токена
  • Рассылка по сегменту с ограничением скорости
  • Админские команды за проверкой прав

Разбор архитектуры

Главная ошибка первого бота — хранить состояние диалога в переменной процесса: после деплоя все разговоры обрываются. Здесь состояние в таблице, а сцена — чистая функция от него, поэтому бот масштабируется в несколько реплик и переживает перезапуск. Ограничение скорости рассылки — не вежливость, а требование Telegram: 30 сообщений в секунду, дальше бан.

Нужно веб-приложение, а не отдельный проект?

Стартеры самостоятельны и не собираются друг с другом. Если задача — сайт или личный кабинет, соберите его из модулей: чат, роли, платежи и остальное встанут в один проект.

Открыть конструктор