Действие «Группы и каналы Telegram»
«Работа с группами и каналами в Telegram» — действие в сценарии действий, которое управляет каналом или группой Telegram от имени бота: публикации, модерация участников, проверка подписки, генерация инвайт-ссылок, выдача прав.
Для работы бот должен быть админом канала/группы с нужными правами.
Когда использовать
- Автопубликации в канал — анонсы новых товаров, акций, событий из бота.
- Геймификация: участие в боте требует подписки на канал — проверка.
- Модерация группы — банить за слова, выдавать варн, ограничивать.
- Закрытые сообщества: инвайт-ссылки выдаются только после оплаты.
- Распределение ролей: бот выдаёт права админа конкретным пользователям.
Часть 1. Подключение
Шаг 1. Добавьте бота в канал/группу
- В Telegram откройте канал/группу.
- Управление → Администраторы → Добавить администратора.
- Найдите вашего бота (
@your_bot). - Выдайте права: Публикация сообщений, Удаление сообщений, Бан пользователей, Добавление пользователей, Управление инвайт-ссылками (по необходимости).
Шаг 2. Узнайте ID
- Публичный канал/группа: используйте
@username. - Приватный: ID начинается с
-100.... Можно узнать, переслав сообщение из канала боту-инспектору (например,@username_to_id_bot).
Часть 2. Доступные операции
В сценарии действий → «Добавить действие» → «Работа с группами и каналами в Telegram».
13 операций:
| Операция | Назначение |
|---|---|
| Отправка сообщения | Публикация в канал/группу |
| Проверка подписки | 1 — подписан, 0 — нет |
| Удаление сообщения | По ID сообщения |
| Бан | Заблокировать пользователя |
| Снятие бана | Разблокировать |
| Установка ограничений | Запретить писать/добавлять стикеры/полл |
| Установка прав | Сделать админом, выдать конкретные права |
| Установка имени администратора | Кастомный «титул» в супергруппе |
| Генерация пригласительной ссылки | Простая инвайт-ссылка |
| Генерация ссылки с параметрами | С лимитом, сроком, по запросу |
| Одобрить вступление | Для каналов «по заявкам» |
| Отклонить вступление | То же, отказать |
| Получить список администраторов | Массив админов |
| Получить число участников | Сколько в канале |

Скриншот 1. Список операций.
Часть 3. Отправка сообщения (message)
| Поле | Значение |
|---|---|
| ID или username канала | @channelname или -1001234567890 |
| Сообщение | Текст с шаблонами замен и переменными |
| Кнопки | Inline-кнопки (URL, callback, WebApp) |
Бот опубликует от имени канала.
Применения
- Анонс новой акции:
🔥 Скидка 30% до конца недели! - Новости магазина: новые товары с WebApp Магазин.
- Уведомления подписчикам канала о боте.
Часть 4. Проверка подписки (subscription)
| Поле | Значение |
|---|---|
| ID или username | Канал/группа для проверки |
| Имя переменной | Куда сохранить результат: 1 или 0 |
Если подписчик пришёл из MAX/VK/Viber — проверка вернёт 0.
Применение
«Подпишись на канал → получи бонус»:
Блок «Проверка подписки»
Сценарий действий «До»:
- TG канал → subscription для @your_channel → переменная sub
Условие #{sub} = 1 → блок «Бонус»
Условие #{sub} = 0 → блок «Подпишись и нажми кнопку Проверить»
Часть 5. Модерация: ban / unban / restrict / promote
Бан (ban)
| Поле | Значение |
|---|---|
| ID канала | Где банить |
| ID пользователя | Кого банить. [ClientID] — текущий клиент |
Снятие бана (unban)
Те же поля. Разбанит пользователя.
Ограничения (restrict)
Запрет писать/добавлять стикеры/полл/инвайтить на определённое время.
Права (promote)
Выдать права админа: публикация, удаление, бан, инвайт, видеочаты и т.д.
Кастомное имя (customtitle)
В супергруппах после promote можно дать «титул» — Главный модератор, Лучший продавец.
Часть 6. Инвайт-ссылки
Простая ссылка (exportinvitelink)
Сгенерирует постоянную инвайт-ссылку. Подписаться может кто угодно — действует бессрочно.
Ссылка с параметрами (createinvitelink)
| Параметр | Значение |
|---|---|
| Срок жизни | Когда истечёт |
| Лимит участников | Сколько может подписаться |
| С заявкой | Требует одобрения админа (approvejoin / declinejoin) |
| Название | Метка ссылки в админке Telegram |
Применение: «Подписка PRO» — клиент оплатил, бот генерирует ссылку с лимитом 1 и отправляет ему.
Одобрение/Отклонение (approvejoin / declinejoin)
Для каналов «по заявкам». Бот может автоматически принимать только тех, кто, например, оплатил доступ.
Часть 7. Чтение информации
Список администраторов (getadministrators)
Возвращает массив админов канала. Используется для уведомлений всем админам.
Число участников (getmembercount)
Возвращает целое число — текущее количество подписчиков. Удобно для:
- Отображения статистики «Нас уже X участников»;
- Триггеров «Когда нас будет 1000, дадим скидку».
Часть 8. Удаление сообщения (mesdelete)
Удалить конкретное сообщение по ID. Применяется для:
- Самоудаления старых акций;
- Удаления тестовых публикаций по таймеру;
- Реакции на жалобу — удалить нарушающее сообщение.
Часть 9. Типовые сценарии
Сценарий 1. Анонс новой акции в канал
Блок «Запуск анонса» (по команде /announce от админа)
Сценарий действий «До»:
- TG канал → message:
канал: @promo_channel
текст: 🔥 #{promo_title}
До #{promo_date}, скидка #{promo_percent}%
кнопки: [«Открыть в боте»] → ссылка t.me/your_bot?start=promo
Сообщение админу: «✅ Анонс опубликован»
Сценарий 2. Геймификация — подпиской
Блок «Бонус за подписку»
Сценарий действий «До»:
- TG канал → subscription для @your_channel → переменная #{is_sub}
Условие #{is_sub} = 1 → блок «Бонус выдан»
- Глобальная переменная #{client_bonus} += 100
- Сообщение: «🎁 Вы получили 100 баллов!»
Условие #{is_sub} = 0 → блок «Подпишитесь»
- Сообщение: «Подпишитесь на @your_channel и нажмите Проверить»
- Кнопка «🔄 Проверить» → возврат на блок «Бонус за подписку»
Сценарий 3. PRO-канал по оплате
Цепочка «Успешная оплата PRO»
Сценарий действий «До»:
- TG канал → createinvitelink:
канал: -1001234567890 (приватный PRO-канал)
лимит: 1 (только этот клиент)
срок: 24 часа
→ сохранить ссылку в переменную #{invite_link}
Сообщение клиенту: «Доступ к PRO-каналу: #{invite_link}
Активна 24 часа.»
Сценарий 4. Автомодерация
Цепочка «Сообщение в группе» (триггер: новое сообщение в группе)
Сценарий действий «До»:
- JS код: проверить [Answer] на запрещённые слова
- Если запрещено:
- TG канал → mesdelete (удалить сообщение)
- TG канал → restrict (запретить писать на 1 час)
- Уведомление админам
Сценарий 5. Уведомление всем админам
Блок «SOS от клиента»
Сценарий действий «До»:
- TG канал → getadministrators → массив #{admins}
- Перебор массива → каждому отправить сообщение через [Группы Telegram → message]
Сценарий 6. Подписки «по заявкам»
Цепочка «Новая заявка» (триггер из Telegram)
Сценарий действий «До»:
- Проверка: оплачена ли подписка клиента
- Если да: TG канал → approvejoin
- Если нет: TG канал → declinejoin + сообщение «Сначала оплатите»
Часть 10. Архитектура
Принцип 1. ID каналов — в глобальные переменные
g_main_channel, g_pro_channel, g_support_group — храните там.
Принцип 2. Не пишите в каналы из сценариев клиента
Сообщения в публичных каналах должны быть редкими и осознанными. Не публикуйте «при каждом действии клиента» — только важные анонсы.
Принцип 3. Проверка подписки — частая операция
Запускайте каждый раз, когда нужен бонус. Telegram кеширует ~30 секунд — частые повторные проверки могут вернуть устаревшие данные.
Принцип 4. Резервируйте права бота
Если ушло одобрение прав из канала (админ убрал, ошибочное действие) — операции начнут возвращать ошибки. Добавьте проверку через getadministrators периодически.
Принцип 5. Инвайт-ссылки с лимитом
Для платных каналов всегда указывайте лимит = 1 и срок жизни (24 часа). Так одна оплата ≠ доступ для всего интернета.
Принцип 6. Логируйте модерацию
Бан, ограничение, удаление — в список «Модерация» с причиной и временем. Это покажет паттерны и защитит от ошибок.
Частые ошибки
403 chat not found— бот не админ или нет прав в канале. Проверьте.subscriptionвсегда возвращает0— клиент пришёл не из Telegram. Это вне Telegram-канала.- Не открывается приватный канал — username неверный для приватного. Используйте ID
-100.... - Кнопки в публикации не отображаются — для каналов работают только inline-кнопки (не reply-клавиатура).
createinvitelinkне работает — у бота нет права «Управление инвайт-ссылками». Включите в админке.- Превышение лимитов Telegram API —
429 Too Many Requests. Делайте паузу между массовыми операциями.
Что дальше
- Группы и каналы МАКС — аналог для MAX.
- Цепочки — триггер «при добавлении тега» для PRO-канала.
- Платежи — оплата → инвайт-ссылка.
- Глобальные переменные — ID каналов.
- Списки — лог модерации.