Кросспостинг RSS-фидов в Telegram, VK и Max

RSS приходит — Crosslybot публикует. Новостной агрегатор без копий-вставок.

Как настроить

1

Создайте webhook input в Crosslybot

В разделе «Каналы → Webhook» создайте новый endpoint типа Inbound. Сохраните Bearer-токен. Привяжите к проекту с целями TG/VK/Max.

2

Выберите RSS-парсер

Варианты: 1) n8n RSS Feed Trigger (проще всего), 2) Cloudflare Worker с fetch RSS каждые N минут, 3) Python-скрипт на cron (feedparser библиотека), 4) специализированные сервисы — IFTTT, Inoreader API.

3

Маппинг RSS → Crosslybot payload

Каждая запись RSS (item) превращается в JSON-запрос. text = title + description, media = enclosure URL (если есть), external_id = item GUID (для idempotency). Опционально: добавьте кнопку «Читать дальше» с URL оригинальной статьи.

4

Дедупликация по external_id

RSS GUID уникален для записи. Передайте его в external_id или Idempotency-Key — Crosslybot не создаст дубликат если та же RSS-запись прилетит повторно (например, при сбое парсера).

5

Запустите автоматизацию

Cron каждые 15 минут → парсер → POST в Crosslybot для каждой новой записи → публикация в TG/VK/Max. Sequential queue гарантирует что посты идут в порядке RSS.

Возможности

Любой RSS / Atom / JSON Feed

Crosslybot принимает уже распарсенные данные — формат фида не важен. RSS 1.0, RSS 2.0, Atom, JSON Feed — обрабатывает ваш парсер на стороне источника.

AI-обработка для разных платформ

VK 15895 символов, TG 4096, Max 4000 — длинная статья из RSS не влезет одинаково. Crosslybot AI сжимает текст под лимит каждой цели (настройка resize в проекте).

Защита от спама дубликатов

Plain-text идентификатор записи (RSS GUID) превращается в external_id. Если RSS-фид содержит обновлённую запись с тем же GUID — Crosslybot не создаст дубликат поста.

Кнопка «Читать дальше»

Передайте в payload buttons URL оригинальной статьи: пользователь видит preview в TG/VK/Max, переходит на сайт-источник за полным контентом.

Частые вопросы

Подходит ли это для high-volume фидов (500+ записей в день)?

Да, для тарифов Maxi (1000 запросов/час) и Business (5000/час). Sequential queue корректно обрабатывает большие потоки. Учтите лимиты по постам в тарифе — на Pro+ это 1000+ постов в месяц.

Как обработать обновления RSS (item изменился)?

Crosslybot не редактирует уже опубликованные посты при повторном webhook'е (Idempotency-Key возвращает оригинальный ответ). Если нужно обновить пост — это отдельный сценарий, не покрывается webhook input. Используйте edit-механики платформ через Bot API (если позволяет ваш кейс).

Что если в RSS-записи нет media, только текст?

Это нормально, поле media опциональное. Crosslybot опубликует текст. В случае Telegram VK Max — текстовый пост работает на всех платформах.

Можно ли фильтровать какие записи публиковать (по тегам, авторам)?

Фильтр на стороне парсера (RSS читается → проверка условий → POST только подходящих записей). Crosslybot не фильтрует RSS — он принимает уже отобранные посты. Также можно использовать встроенный hashtag_filter цели Crosslybot.

Можно ли публиковать с задержкой (через час после появления в RSS)?

Да: 1) задержка через delay_minutes в настройках цели Crosslybot, 2) задержка на стороне парсера (подождать N минут перед отправкой), 3) Schedule Date в Notion-схеме если используете её как промежуточный слой.

RSS — старый, но живой стандарт распространения контента. Любой блог, новостной сайт, подкаст-площадка предоставляет RSS. Если хотите аккумулировать новости из десятка источников и публиковать в свои каналы — RSS-агрегатор с Crosslybot как backend выгоден: вы пишете только парсер, не три интеграции с социальными сетями.

Архитектура

┌─────────┐  ┌─────────┐  ┌─────────┐  ┌─────────┐
│ Site A  │  │ Site B  │  │ Site C  │  │ Site D  │
│  RSS    │  │  RSS    │  │  RSS    │  │  RSS    │
└────┬────┘  └────┬────┘  └────┬────┘  └────┬────┘
     │            │            │            │
     └────────────┴────────────┴────────────┘

                  ┌─────▼─────┐
                  │  RSS      │  Cron каждые 15 мин
                  │  Parser   │  (n8n / Worker / cron+python)
                  └─────┬─────┘
                        │ HTTP POST с дедупликацией по GUID

              ┌─────────────────┐
              │ Crosslybot      │  AI обработка, фильтры,
              │ Webhook Input   │  подпись цели
              └────────┬────────┘

        ┌──────────────┼──────────────┐
        ▼              ▼              ▼
   Telegram          VK             Max
   канал          сообщество       канал

Маппинг RSS-item → Crosslybot payload

# Псевдокод парсера
import feedparser
import requests

feed = feedparser.parse('https://example.com/rss.xml')
for item in feed.entries:
    payload = {
        'text': f'{item.title}\n\n{item.summary[:500]}',
        'external_id': item.id,  # RSS GUID
        'media': [
            {'type': 'photo', 'url': enc.url}
            for enc in item.get('enclosures', [])
            if enc.type.startswith('image/')
        ],
        'buttons': [[
            {'text': 'Читать дальше', 'url': item.link}
        ]],
        'metadata': {'source': feed.feed.title}
    }
    requests.post(
        'https://wh.crosslybot.ru/v1/webhooks/{id}',
        headers={
            'Authorization': 'Bearer crossly_live_...',
            'Idempotency-Key': item.id,
        },
        json=payload,
    )

Преимущества Crosslybot для RSS-агрегатора

  • Один HTTP-запрос вместо трёх (TG/VK/Max API)
  • Дедупликация — повторный POST с тем же external_id безопасен
  • AI-сжатие длинных статей под лимиты платформ
  • Фильтр рекламы на уровне Crosslybot — отсеиваем рекламные RSS-записи
  • Подпись источника автоматически добавляется к каждому посту
  • Sequential queue — посты идут в порядке поступления, RSS-feed не перемешается

С чего начать

  1. Зарегистрируйтесь в Crosslybot (Pro+ для webhook input)
  2. Создайте webhook endpoint, привяжите к проекту с TG/VK/Max
  3. Напишите парсер RSS (n8n, Cloudflare Worker, Python-скрипт)
  4. Реализуйте маппинг item → payload (см. пример выше)
  5. Настройте cron / расписание парсера
  6. Используйте sandbox для проверки формата перед запуском

Webhook input доступен на тарифах Pro, Maxi и Business.

Бесплатный тариф

Готовы попробовать?

Подключите бота за 2 минуты. Бесплатный тариф — без карт и регистраций.

Подробнее о боте →