Телеграм-бот для удалённых сообщений: как устроен архив на Telegram Business API, aiogram 3 и FastAPI
nlaik 8 минут назад Краткое содержание статьи Телеграм-бот для удалённых сообщений: как устроен архив на Telegram Business API, aiogram 3 и FastAPI Средний 7 мин 31 Python * Платежные системы * Мессенджеры * Кейс Как...
Will Anthropic have the best AI model at the end of October 2026?
Значимый прорыв формирует отрасль ИИ: nlaik 8 минут назад Краткое содержание статьи Телеграм-бот для удалённых сообщений: как устроен архив на Telegram Business API, aiogram 3 и FastAPI Средний 7 мин 31 Python * Платежные системы * Мессенджеры * Кейс Как устроен мой Telegram-бот на aiogram 3 и FastAPI, какие грабли встретились по дороге и где заканчиваются возможности платформыСразу о том, что вы читаете: я автор сервиса, о котором пойдёт речь, и это разбор его устройства, а не приглашение им пользоваться. Меня самого в чужих статьях интересует не «что умеет продукт», а «на чём он сломался и как это починили», поэтому и здесь упор на второе. Исходная задача простая.
В Telegram у сообщения нет истории правок и нет корзины. Собеседник может удалить сообщение или тихо исправить в нём сумму, и у вас остаётся только память. Мне нужно было автоматически вести архив таких событий: копию удалённого, разницу между старой и новой версией, время, через которое это произошло.
Технические детали
Что Telegram разрешает на самом делеНикаких клиентских сессий, кодов из СМС и обходов здесь нет. Бот работает через официальную функцию Telegram Business: в настройках аккаунта есть раздел «Автоматизация чатов», куда можно подключить бота к выбранным личным чатам. После этого Telegram присылает боту три типа событий:business_message — новое сообщение в подключённом чате;edited_business_message — сообщение изменили;deleted_business_messages — одно или несколько сообщений удалили.
Из этого вытекает ключевое ограничение, на котором держится вся архитектура. Событие об удалении не содержит текста. В нём только идентификаторы удалённых сообщений.
Значит, восстановить удалённое можно единственным способом: сохранить сообщение в момент получения. Бот не видит прошлое, он ведёт архив с момента подключения. Эту оговорку я выношу в самое первое сообщение пользователю, потому что от неё зависят ожидания от сервиса.
Отраслевые последствия
Стек и общая схемаPython 3. 12, aiogram 3, FastAPI, PostgreSQL, Redis с очередью ARQ, S3-совместимое хранилище для медиа. Всё живёт на одном небольшом VPS с 2 ГБ памяти.
Порядок обработки такой:Telegram присылает апдейт на вебхук (FastAPI). Апдейт сразу записывается в таблицу-«почтовый ящик» (inbox) в транзакции. Только после успешной записи сервер отвечает 200.
Отдельный воркер ARQ разбирает inbox: сохраняет сообщение, скачивает медиа, шлёт уведомление. Упрощённый вариант обработчика вебхука:@app. post("/webhook/{secret} async def webhook(secret: str, request: Request): if secret !
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.



