Перейти к основному содержимому

Действие «Группы и каналы Telegram»

«Работа с группами и каналами в Telegram» — действие в сценарии действий, которое управляет каналом или группой Telegram от имени бота: публикации, модерация участников, проверка подписки, генерация инвайт-ссылок, выдача прав.

Для работы бот должен быть админом канала/группы с нужными правами.

Когда использовать

  • Автопубликации в канал — анонсы новых товаров, акций, событий из бота.
  • Геймификация: участие в боте требует подписки на канал — проверка.
  • Модерация группы — банить за слова, выдавать варн, ограничивать.
  • Закрытые сообщества: инвайт-ссылки выдаются только после оплаты.
  • Распределение ролей: бот выдаёт права админа конкретным пользователям.

Часть 1. Подключение

Шаг 1. Добавьте бота в канал/группу

  1. В Telegram откройте канал/группу.
  2. УправлениеАдминистраторыДобавить администратора.
  3. Найдите вашего бота (@your_bot).
  4. Выдайте права: Публикация сообщений, Удаление сообщений, Бан пользователей, Добавление пользователей, Управление инвайт-ссылками (по необходимости).

Шаг 2. Узнайте ID

  • Публичный канал/группа: используйте @username.
  • Приватный: ID начинается с -100.... Можно узнать, переслав сообщение из канала боту-инспектору (например, @username_to_id_bot).

Часть 2. Доступные операции

В сценарии действий → «Добавить действие»«Работа с группами и каналами в Telegram».

13 операций:

ОперацияНазначение
Отправка сообщенияПубликация в канал/группу
Проверка подписки1 — подписан, 0 — нет
Удаление сообщенияПо ID сообщения
БанЗаблокировать пользователя
Снятие банаРазблокировать
Установка ограниченийЗапретить писать/добавлять стикеры/полл
Установка правСделать админом, выдать конкретные права
Установка имени администратораКастомный «титул» в супергруппе
Генерация пригласительной ссылкиПростая инвайт-ссылка
Генерация ссылки с параметрамиС лимитом, сроком, по запросу
Одобрить вступлениеДля каналов «по заявкам»
Отклонить вступлениеТо же, отказать
Получить список администраторовМассив админов
Получить число участниковСколько в канале

Операции Telegram

Скриншот 1. Список операций.


Часть 3. Отправка сообщения (message)

ПолеЗначение
ID или username канала@channelname или -1001234567890
СообщениеТекст с шаблонами замен и переменными
КнопкиInline-кнопки (URL, callback, WebApp)

Бот опубликует от имени канала.

Применения

  • Анонс новой акции: 🔥 Скидка 30% до конца недели!
  • Новости магазина: новые товары с WebApp Магазин.
  • Уведомления подписчикам канала о боте.

Часть 4. Проверка подписки (subscription)

ПолеЗначение
ID или usernameКанал/группа для проверки
Имя переменнойКуда сохранить результат: 1 или 0
Только Telegram

Если подписчик пришёл из 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. Инвайт-ссылки

Сгенерирует постоянную инвайт-ссылку. Подписаться может кто угодно — действует бессрочно.

ПараметрЗначение
Срок жизниКогда истечёт
Лимит участниковСколько может подписаться
С заявкойТребует одобрения админа (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 API429 Too Many Requests. Делайте паузу между массовыми операциями.

Что дальше