Каналы: Telegram, WhatsApp, VK
Мультиканальность GetMyBot: один бот в Telegram, WhatsApp и VK, матрица возможностей каналов и подключение канала в интерфейсе.
На этой странице
Бот в GetMyBot может работать сразу в нескольких мессенджерах: Telegram, WhatsApp и VK. Вы собираете поведение один раз (реакции, условия, действия), а платформа доставляет его в тот канал, откуда пришло событие. Так один конструктор обслуживает все каналы, а не заводится отдельно под каждый.
Что такое канал
Каналом называется подключённая площадка доставки: конкретный Telegram-бот, номер WhatsApp Business или сообщество VK. У одного бота GetMyBot может быть несколько каналов. Реакции общие: когда подписчик пишет в WhatsApp, событие обрабатывается теми же реакциями, что и в Telegram, а ответ уходит обратно в WhatsApp.
Разные каналы поддерживают разный набор возможностей мессенджера (кнопки, редактирование, шаблоны и т. д.). Конструктор учитывает это: недоступные для канала действия либо не предлагаются, либо деградируют до ближайшего аналога.
Основной канал (primary_channel)
У каждого бота есть основной канал (primary_channel): площадка, с которой бот в первую очередь ассоциируется. Обычно это Telegram, но бота можно создать сразу как WhatsApp- или VK-бота, вообще без Telegram. Основной канал определяется при создании и виден в списке ботов; остальные каналы добавляются к боту позже.
Матрица возможностей каналов
Ниже: какие возможности мессенджера поддерживает каждый канал. Актуальную матрицу в машинном виде отдаёт API: GET /api/channels/capabilities.
Telegram: эталонный канал с полным набором возможностей: inline-кнопки и reply-клавиатура, callback (нажатие кнопки → реакция), реакции-эмодзи, deep-link /start, редактирование, удаление и пересылка сообщений, reply как триггер, события участников, права и модерация. Форматирование текста: Plain / HTML / Markdown. Шаблонов, списков, каруселей и сессионного окна нет (они не нужны в Telegram).
WhatsApp (через WhatsApp Cloud API): своя специфика: inline-кнопки, callback, реакции-эмодзи, deep-link /start, шаблоны сообщений, списки (interactive list) и 24-часовое сессионное окно. Форматирование: Plain / Markdown. Не поддерживает reply-клавиатуру, редактирование, удаление и пересылку сообщений, reply как триггер, события участников, права/модерацию и карусели. Подробнее: на странице WhatsApp.
VK: сообщения и вложения, inline-кнопки и reply-клавиатура, callback, реакции-эмодзи, deep-link /start, редактирование и удаление сообщений, пересылка, события участников, бан/разбан, одобрение уже поданной заявки в закрытое сообщество, события платной подписки VK Donut. Форматирование: только простой текст (HTML/Markdown вырезается при рендере). Шаблонов WhatsApp, списков, каруселей и сессионного окна у VK нет.
Общее для всех каналов: inline-кнопки, callback, реакции-эмодзи и deep-link /start. Карусели пока не поддерживает ни один канал.
VK Donut
Если у сообщества включён VK Donut, бот получает системные события платной подписки:
| Событие в конструкторе | Ключ | Подстановки |
|---|---|---|
| VK Donut: оформлена | donut_subscription_created | {{event.donut_amount}}, {{event.donut_amount_without_fee}} |
| VK Donut: продлена | donut_subscription_prolonged | {{event.donut_amount}}, {{event.donut_amount_without_fee}} |
| VK Donut: закончилась | donut_subscription_expired | нет |
| VK Donut: отменена | donut_subscription_cancelled | нет |
{{event.donut_amount}}: сумма платежа, {{event.donut_amount_without_fee}}: сумма без комиссии VK. У «закончилась» и «отменена» сумм нет: окончание оплаченного срока ничего о деньгах не говорит, и подставить туда прошлый платёж значило бы придумать цифру.
Это событие о подписчике, а не сообщение от него. Поэтому оно не отмечает диалог доступным для личных сообщений, не снимает блокировку, не двигает «последнюю активность» и не увеличивает счётчик сообщений: списание с карты не означает, что человек написал. Если такого подписчика платформа ещё не знает, он создаётся: иначе к нему нельзя было бы применить метки и права.
Типовой сценарий «клуб по подписке»:
- Реакция на VK Donut: оформлена (и такая же на продлена): действие Изменить метки → добавить метку «Клуб» со сроком
ttl_days= 31, плюс сообщение со ссылкой на закрытое сообщество клуба и просьбой подать заявку на вступление. - Одобрение заявки: отдельный шаг после того, как подписчик её подал. Действие Изменить права → Одобрить заявку принимает уже поданную заявку (
groups.approveRequest); пока заявки нет, одобрять нечего. Поставьте его в реакцию, которая срабатывает после шага 1: например, на кнопку «Я отправил заявку» под тем же сообщением, или на следующее событие продлена. - Реакция на Метка истекла (
label_expired): действие Изменить права → Исключить. Так подписчик выходит из клуба ровно тогда, когда истёк срок метки, независимо от того, пришло ли от VK событие «закончилась». Подробнее: Триггеры → Метка истекла. - Реакция на VK Donut: отменена и закончилась: Изменить метки → удалить «Клуб» и при необходимости Исключить сразу.
Поле «Чат» (chat_id) в действиях с правами для VK содержит идентификатор того самого подключённого сообщества (то же число, что показано у канала VK в списке каналов). VK модерирует только само себя: какое бы значение вы ни написали, действие применится к подключённому сообществу, поэтому указывать там произвольный чат или другое сообщество бессмысленно. Другому сообществу нужно своё подключение канала.
Как включить события:
- Long Poll: бот подписывается на них сам: при подключении канала и при каждом запуске платформы, так что уже подключённым сообществам ничего делать не нужно.
- Callback API: откройте в настройках сообщества Работа с API → Callback API → Типы событий → VK Donut и включите все четыре события из таблицы выше.
Как подключить канал
Каналы добавляются на странице Проекты.
- Откройте Проекты и найдите нужный проект.
- Нажмите Добавить канал на карточке проекта.
- Выберите платформу: Telegram, WhatsApp или VK.
- Введите реквизиты канала (для Telegram: токен, для WhatsApp: набор реквизитов Meta, для VK: реквизиты сообщества).
- Нажмите Проверить: платформа проверит реквизиты на стороне мессенджера.
- Нажмите Подключить.
Для WhatsApp и VK после подключения у канала появляется адрес вебхука (иконка 🔗). Этот адрес нужно прописать на стороне платформы (в приложении Meta для WhatsApp, в настройках сообщества для VK), чтобы входящие события доходили до бота. Как это сделать для WhatsApp: см. WhatsApp → Настройка вебхука.
Что дальше
- WhatsApp: подключение, вебхук, сессионное окно, шаблоны сообщений.
- Проекты и каналы: базовое подключение бота.
- Реакции: основы: общее поведение бота для всех каналов.