Публикации
Публикации — это механизм для создания, публикации и автообновления сообщений с поддержкой медиа, кнопок и голосований.
📝 Назначение
Позволяет:
- Создавать шаблоны сообщений (текст, медиа, кнопки)
- Публиковать их в группы и каналы
- Автоматически обновлять все опубликованные копии при изменении шаблона
- Проверять внешний вид через превью в личном чате
Основные понятия
| Термин | Описание |
|---|---|
| Контент | Шаблон сообщения (текст, файл, кнопки, настройки) |
| Публикация | Отправка контента в целевой чат/канал |
| Связь | Запись об опубликованном сообщении (чат + ID сообщения) |
| История | Список всех связей контента |
| Превью | Тестовое сообщение в личном чате администратора |
| Голосование | Специальный тип кнопок для сбора голосов |
Создание контента
Основные настройки
| Параметр | Описание |
|---|---|
| Имя | Техническое название (видно только администраторам) |
| Текст | Основное сообщение (поддерживает переменные и макросы) |
| Файл | Одиночное медиа или альбом (2-10 элементов) |
| Кнопки | Inline-клавиатура (только для одиночных сообщений) |
| Web-preview | Настройки превью ссылок |
Настройки публикации
| Параметр | Описание |
|---|---|
| Автообновление | При изменении контента — автоматически обновлять все опубликованные копии |
| Не запоминать | Не сохранять новые публикации в историю (существующие обновляются по-прежнему) |
| Тихая отправка | без звука |
| Защита от пересылки | запрет копирования |
| Подпись над медиа | Для photo/video/animation — подпись над, а не под |
Публикация
Процесс
- Нажмите «Опубликовать» в интерфейсе контента
- Выберите целевой чат/канал (бот должен быть администратором)
- Бот отправляет сообщение
- Создаётся «связь» (запись в истории), если не включён режим «Не запоминать»
Возможности
- Публикация в группы и каналы
- Поддержка альбомов (2-10 фото/видео, или только документы, или только аудио)
- Поддержка всех типов медиа: photo, video, animation, audio, voice, document, sticker, video_note
⚠️ Важно: Альбом не поддерживает кнопки (ограничение Telegram).
Автообновление
Как работает
При изменении контента (текст, файл, кнопки, web-превью, настройки рендера) бот автоматически обновляет все опубликованные сообщения, если включён флаг «Автообновление».
Порядок обновления:
- Триггер «Визуализации» (формирование финального содержимого)
- Обновление всех связей (и превью, если есть)
- Триггер «Публикации» (пост-обработка)
Обработка ошибок
| Ситуация | Действие |
|---|---|
| Бот удалён из чата / сообщение удалено | Связь удаляется из истории |
| Нет прав на редактирование | Ошибка записывается в связь |
| Содержимое не изменилось | Считается успехом (ошибки нет) |
Голосования
Голосование с кнопками-вариантами.
Варианты задаются в каждой кнопке отдельно флагом «Вариант голосования».
Отображение в кнопках:
- По умолчанию:
Число голосов | Текст варианта - Настройки: скрыть число, показывать процент (округляется вниз)
Главный экран голосования
| Элемент | Описание |
|---|---|
| ▶/⏸ Запущено/Остановлено | Управление приёмом голосов |
| ⚙️ Настройки | Переход в подменю настроек |
| Кнопки-варианты | Выбор, чьи голоса показывать (все/только вариант) |
| Список проголосовавших | Имена, ссылки, ID (копируемый) — пагинация по 20, поиск |
Настройки голосования
| Параметр | Описание |
|---|---|
| Режим изменения голоса | Свободно (менять/снимать) / Без снятия (менять, нельзя снять) / Финальный (один раз, без изменений) |
| Скрыть число голосов | скрывает численность проголосовавших |
| Показать процент голосов | отображает проценты, место конкретного числа проголосовавших |
| Скачать итоги | .txt / .csv / .slxs (с кэшированием, не чаще раза в час) |
| Сброс голосования | Полная очистка всех голосов |
Экспорт итогов
Форматы:
- .CSV
- .txt
- .xlsx
Колонки:
- user id
- first name
- last name
- username (без @)
- option id
- option name
- voted at (человекочитаемо, в таймзоне бота)
- voted at unix (секунды)
Кэширование:
- Новый файл генерируется не чаще раза в час на каждый тип
- При повторном запросе в течение часа — отдаётся ранее сгенерированный по
file_id
Безопасность: ячейки с формульными символами (= + - @ tab cr) экранируются апострофом
История публикаций (Связи)
Раздел «Связи» — список всех опубликованных сообщений контента.
Функции
| Действие | Описание |
|---|---|
| Открыть пост | Перейти к сообщению в Telegram |
| Забыть | Удалить одну связь (сообщение не удаляется, только история) |
| Забыть все | Очистить всю историю контента |
| Поиск | По названию чата или ID |
| Пагинация | Навигация по страницам |
Лимит истории
| Параметр | Значение |
|---|---|
| По умолчанию | 1 пост |
| Максимум | 3 поста |
| Изменение | Вручную в разделе «Связи» (степпер −/+ или ввод числа) |
| Вытеснение | При превышении лимита самые старые связи удаляются |
Режим «Не запоминать»
- Отключает запись новых публикаций в историю
- Автообновление уже сохранённых постов работает независимо (зависит только от флага «Автообновление»)
Превью (Проверить)
Кнопка «Проверить» отправляет тестовое сообщение в чат, где она нажата (личный чат администратора).
Триггеры
| Триггер | Когда срабатывает | Назначение |
|---|---|---|
| До | Перед публикацией/обновлением | Подготовка данных |
| Визуализации | Перед формированием содержимого | Динамическое изменение текста/кнопок перед публикацией |
| Публикации | После успешной публикации/обновления | Пост-обработка, логирование |
| После | После выполнения действия | Завершающие действия |
| Кнопка | При нажатии на кнопку | Обработка взаимодействия |
У кнопок также есть триггеры: До → Кнопка → После
Реакции
| Реакция | Описание |
|---|---|
loadContent |
Загрузить контент в контекст |
loadRandomContent |
Выбрать случайный контент |
sendContent |
Отправить контент в указанный чат |
updateContent |
Обновить все опубликованные копии контента |
Ограничения по типам файлов
Альбом (медиагруппа)
| Разрешённые комбинации | Ограничения |
|---|---|
| photo + video (вместе) | 2–10 элементов |
| document (только с document) | 2–10 элементов |
| audio (только с audio) | 2–10 элементов |
| animation, voice, video_note, sticker | Только одиночным сообщением |
⚠️ Важно: У альбома нет кнопок (ограничение Telegram).
Подпись
| Есть подпись | Нет подписи |
|---|---|
| photo, video, animation, audio, voice, document | video_note, sticker |
Подпись над медиа (ShowCaptionAboveMedia) — только для photo, video, animation.
Обновление сообщений: совместимость типов
| Текущий тип | Действие | Метод |
|---|---|---|
| Текст | Редактирование текста | editMessageText |
| Photo/Video/Animation/Audio/Document | Замена медиа + подпись + кнопки | editMessageMedia |
| Voice | Только подпись + кнопки | editMessageCaption |
| VideoNote/Sticker | Только кнопки | editMessageReplyMarkup |
| Альбом (число медиа не изменилось) | Правка каждого элемента | editMessageMedia |
| Альбом → меньше медиа | Правка первых N, лишние удалить | Комбинированный |
| Альбом → больше медиа | Ошибка (нельзя добавить) | — |
| Альбом → текст | Ошибка | — |
| Текст → медиа | Добавление медиа к тексту | editMessageMedia |
Связанные разделы
| Раздел | Описание |
|---|---|
| Меню | Создание кнопок |
| Реакции | Общая документация по реакциям |
| Webhook | Внешние интеграции |