База знаний GetMyBot

Каналы: 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. У «закончилась» и «отменена» сумм нет: окончание оплаченного срока ничего о деньгах не говорит, и подставить туда прошлый платёж значило бы придумать цифру.

Это событие о подписчике, а не сообщение от него. Поэтому оно не отмечает диалог доступным для личных сообщений, не снимает блокировку, не двигает «последнюю активность» и не увеличивает счётчик сообщений: списание с карты не означает, что человек написал. Если такого подписчика платформа ещё не знает, он создаётся: иначе к нему нельзя было бы применить метки и права.

Типовой сценарий «клуб по подписке»:

  1. Реакция на VK Donut: оформлена (и такая же на продлена): действие Изменить метки → добавить метку «Клуб» со сроком ttl_days = 31, плюс сообщение со ссылкой на закрытое сообщество клуба и просьбой подать заявку на вступление.
  2. Одобрение заявки: отдельный шаг после того, как подписчик её подал. Действие Изменить права → Одобрить заявку принимает уже поданную заявку (groups.approveRequest); пока заявки нет, одобрять нечего. Поставьте его в реакцию, которая срабатывает после шага 1: например, на кнопку «Я отправил заявку» под тем же сообщением, или на следующее событие продлена.
  3. Реакция на Метка истекла (label_expired): действие Изменить права → Исключить. Так подписчик выходит из клуба ровно тогда, когда истёк срок метки, независимо от того, пришло ли от VK событие «закончилась». Подробнее: Триггеры → Метка истекла.
  4. Реакция на VK Donut: отменена и закончилась: Изменить метки → удалить «Клуб» и при необходимости Исключить сразу.

Поле «Чат» (chat_id) в действиях с правами для VK содержит идентификатор того самого подключённого сообщества (то же число, что показано у канала VK в списке каналов). VK модерирует только само себя: какое бы значение вы ни написали, действие применится к подключённому сообществу, поэтому указывать там произвольный чат или другое сообщество бессмысленно. Другому сообществу нужно своё подключение канала.

Как включить события:

  • Long Poll: бот подписывается на них сам: при подключении канала и при каждом запуске платформы, так что уже подключённым сообществам ничего делать не нужно.
  • Callback API: откройте в настройках сообщества Работа с API → Callback API → Типы событий → VK Donut и включите все четыре события из таблицы выше.

Как подключить канал

Каналы добавляются на странице Проекты.

  1. Откройте Проекты и найдите нужный проект.
  2. Нажмите Добавить канал на карточке проекта.
  3. Выберите платформу: Telegram, WhatsApp или VK.
  4. Введите реквизиты канала (для Telegram: токен, для WhatsApp: набор реквизитов Meta, для VK: реквизиты сообщества).
  5. Нажмите Проверить: платформа проверит реквизиты на стороне мессенджера.
  6. Нажмите Подключить.

Для WhatsApp и VK после подключения у канала появляется адрес вебхука (иконка 🔗). Этот адрес нужно прописать на стороне платформы (в приложении Meta для WhatsApp, в настройках сообщества для VK), чтобы входящие события доходили до бота. Как это сделать для WhatsApp: см. WhatsApp → Настройка вебхука.

Что дальше