Перейти к содержимому
PD
Автоматизация

VK → Telegram + MAX Автопостинг

Сервис, который автоматически зеркалит посты группы ВКонтакте в Telegram и MAX.

Проблема

Владельцу сообщества приходилось вручную копировать каждый пост ВК — текст, фото и видео — в Telegram-канал и чат MAX, теряя время и пропуская публикации.

Результат

Self-hosted сервис публикует новые посты ВК в Telegram и MAX за секунды — с защитой от дублей и автоматическими повторами.

Технологии

TypeScriptNode.jsSQLiteVK Callback APITelegram Bot APIMAX Bot APIDocker

Обзор

VK → Telegram + MAX Автопостинг — небольшой надёжный backend-сервис, который следит за стеной сообщества ВКонтакте и публикует каждый новый пост в Telegram-канал и чат MAX. Он обрабатывает текст, фотоальбомы, видео и ссылки и работает без присмотра на VPS через Docker.

Проблема

Кросс-постинг одного и того же контента в несколько соцсетей — ровно та рутина, которую люди со временем перестают делать аккуратно. Заказчик публиковал сначала во ВКонтакте, а затем вручную перезаливал всё в Telegram и MAX. Посты выходили с опозданием, вложения терялись, а часть обновлений вовсе не доходила. Готовые мосты либо не поддерживали MAX, либо им нельзя было доверить медиа.

Решение

Сервис подписывается на Callback API ВКонтакте и реагирует на событие wall_post_new в момент появления поста — без медленного поллинга. Каждый пост нормализуется в текст и набор вложений, после чего рассылается в Telegram и MAX через их Bot API. Слой SQLite фиксирует каждый пост, чтобы ничего не публиковалось дважды, а статус partial позволяет повторить отправку только в ту сеть, где произошёл сбой, не дублируя пост целиком.

Возможности

  • Режим VK Callback API (wall_post_new) с резервным поллингом через wall.get
  • Публикация текста, фотоальбомов, видео и ссылок в Telegram и MAX
  • Дедупликация в SQLite со статусом partial и автоматической повторной доставкой при сбое
  • Пропуск закреплённых постов и опциональный пропуск старого бэклога при первом запуске
  • Структурированные логи (pino) и эндпоинт /health для мониторинга
  • Деплой через Docker + docker-compose и CI/CD на VPS через GitHub Actions

Процесс разработки

Самым сложным были медиа: ВКонтакте, Telegram и MAX по-разному описывают вложения, а MAX требует загрузить файл до того, как на него сошлётся сообщение. Сервис скачивает медиа во временный каталог, загружает его под каждую платформу и повторяет временные ответы attachment.not.ready. Важен был и регион: Telegram Bot API не всегда доступен у российских VPS-провайдеров, поэтому деплой нацелен на VPS вне РФ.

Результаты

  • Новые посты ВК появляются в Telegram и MAX за секунды, без ручного труда
  • Дедупликация и повторы по каждой сети убрали и пропуски, и дубли
  • Полностью контейнеризирован: одна команда docker compose up поднимает сервис на чистом сервере
  • Руководство на русском для заказчика сделало систему управляемой без технических навыков

Выводы

Надёжность небольшой интеграции держится на скучных вещах: идемпотентности, обработке частичных сбоев и честном логировании. Модель «опубликовать в N целей и отслеживать каждую независимо» превратила хрупкое зеркало в сервис, который тихо делает свою работу.

Услуги в этом проекте

Похожие кейсы

Нужна похожая система?

Расскажите о своей задаче — я предложу архитектуру и кратчайший путь к рабочему продукту.