Как перенести Telegram-бота в MAX: три способа

Руководство3 мин чтения

Бизнес переносит ботов в MAX, и самый частый запрос к студиям звучит так: «сделайте такого же бота, как в Telegram». Готовой кнопки «перенести» нет ни у Telegram, ни у MAX. Ниже три рабочих способа и чем они отличаются.

Коротко: если бот написан на любом языке и вы не хотите его переписывать, меняйте адрес API на шлюз. Если бот маленький и вы готовы потратить пару дней, его можно переписать под MAX Bot API.

С чего начать: бот в MAX создаётся отдельно

Telegram-бот не превращается в бота MAX сам. Сначала создайте нового бота в кабинете «MAX для бизнеса». Сделать это можно только из подтверждённого профиля организации, ИП или самозанятого, а каждый бот проходит модерацию. Поэтому бота лучше создавать владельцу бизнеса, а не подрядчику.

  • Зарегистрируйте профиль в «MAX для бизнеса» и подтвердите его.
  • Создайте бота и дождитесь модерации.
  • Сохраните токен: он понадобится для любого из трёх способов.

Способ 1. Переписать бота под MAX Bot API

У MAX свой Bot API, он похож на Telegram по смыслу, но отличается в деталях: другие адреса методов, токен в заголовке Authorization, другие типы кнопок и событий. Подробное сравнение — в статье MAX Bot API и Telegram Bot API.

Что придётся сделать вручную:

  • переписать отправку сообщений, кнопок и файлов под новые методы;
  • поднять вебхук на HTTPS с портом 443 и сертификатом доверенного центра;
  • добавить в доверенные цепочку сертификатов Минцифры, иначе HTTP-клиент упадёт на проверке;
  • написать защиту от повторных событий: MAX повторяет доставку, если не получил ответ вовремя;
  • резать сообщения длиннее 4 000 символов.

Разработчики, которые проходили этот путь, тратят на адаптер, вебхук и сертификат пару дней на бота. Для одного простого бота это приемлемо. Для студии с десятками клиентских ботов это недели работы.

Способ 2. Взять адаптер под свою библиотеку

Для Python есть адаптеры, которые повторяют интерфейс популярных библиотек: obabot похож на aiogram 3, telebot-maxapi-adapter — на pyTelegramBotAPI. Они экономят время, но у них есть ограничения.

  • Работают только с одной библиотекой и только на Python.
  • Нужно менять импорты и инициализацию бота.
  • Часть возможностей не поддержана: стикеры, анимации, реакции, топики.
  • Вебхук и сертификат всё равно остаются на вас.

Способ 3. Подключить шлюз и поменять одну строку

Шлюз говорит на языке Telegram Bot API, а работает с MAX. Бот отправляет запросы на api.bothop.ru вместо api.telegram.org, шлюз переводит их в вызовы MAX и возвращает ответ в формате Telegram. События из MAX приходят боту как обычные Telegram Update.

session = AiohttpSession(
Было:     api=TelegramAPIServer.from_base("https://api.telegram.org")Стало:     api=TelegramAPIServer.from_base("https://api.bothop.ru"))

Так работает с любым языком и любой библиотекой, где можно задать адрес API. Инструкции для конкретных библиотек собраны в блоге.

Сравнение трёх способов

ПереписатьАдаптерШлюз
ЯзыкиЛюбойТолько PythonЛюбой
Изменения в кодеПочти весь ботИмпорты и запускОдна строка
Вебхук и сертификатНа васНа васДержит шлюз
Дубли событийПисать самомуЗависит от адаптераОтсекаются
Время на бота1–2 дня и большеНесколько часовНесколько минут

Что делать с подписчиками

Подписчики не переезжают ни одним из способов: у MAX свои пользователи и свои идентификаторы. Аудиторию переводят рассылкой со ссылкой на бота в MAX. Как сделать это без потерь, разобрали в статье Как перевести подписчиков из Telegram в MAX.

Чек-лист перед переносом

  1. Создайте бота в «MAX для бизнеса» и получите токен.
  2. Выпишите сценарии бота: меню, формы, оплата, рассылки.
  3. Проверьте, чего из этого нет в MAX: опросы, стикеры, платежи, мини-приложения.
  4. Выберите способ переноса.
  5. Пройдите все сценарии в MAX до того, как звать туда пользователей.
  6. Запустите рассылку-приглашение в Telegram-боте.

BotHop запускается 1 декабря. Записаться в ранний доступ можно на главной странице, а заказать перенос вручную за 4 990 ₽ — в Telegram @svintsovyan.

Частые вопросы

Можно ли перенести бота в MAX без программиста?

Можно заказать перенос под ключ. Самому без программиста нельзя: нужно поменять адрес API в коде и перезапустить бота.

Сколько времени занимает перенос?

Ручная переделка под MAX Bot API занимает от одного-двух дней на бота. Через шлюз нужно поменять одну строку и перезапустить бота.

Нужно ли заново создавать бота?

Да, бот в MAX создаётся отдельно в кабинете «MAX для бизнеса». Код и сценарии можно оставить прежними.