Задача: связать аккаунт на сайте с Telegram без пароля и ручного сопоставления, и рассылать
уведомления адресно — с учётом уровня доступа.
Что сделано: бот с командами и промежуточным слоем обработки — привязка аккаунта по одноразовому
токену, форматирование события в сообщение, адресная рассылка по подписчикам с учётом тарифа и
задержкой для бесплатного уровня, дежурные оповещения, настройки уведомлений в кабинете и
отписка.
Отдельно — вахтёр поллинга, и в нём смысл работы. Он проверяет не «запущен ли процесс», а две
вещи, по которым видно, что бот действительно работает: свежесть последнего успешного ответа
Telegram API (нет ответов дольше пяти минут — петля поллинга перезапускается) и свежесть
выдаваемых данных (запись старше суток бот не отдаёт как «последнюю»). Живой процесс, который молча ничего не делает, — самый
частый и самый дорогой вид отказа в таких контурах: снаружи всё зелёное, а сообщения не идут.
Объём: 12 модулей, 2 набора автотестов — на вахтёра поллинга и на правило свежести выдачи. Бот-агент
вынесен в отдельную службу с установщиком, вахтёром и ограничителем расхода.
Стек: TypeScript, Telegram Bot API и MTProto, маршрут приёма на Next.js, тесты на node:test.
Это внедрение в моей собственной инфраструктуре, а не работа по заказу внешнего клиента. Моя
роль: постановка задачи, техническое задание, приёмка и эксплуатация.