Как перенести Telegram-бота в MAX: три способа
Бизнес переносит ботов в 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.
Чек-лист перед переносом
- Создайте бота в «MAX для бизнеса» и получите токен.
- Выпишите сценарии бота: меню, формы, оплата, рассылки.
- Проверьте, чего из этого нет в MAX: опросы, стикеры, платежи, мини-приложения.
- Выберите способ переноса.
- Пройдите все сценарии в MAX до того, как звать туда пользователей.
- Запустите рассылку-приглашение в Telegram-боте.
BotHop запускается 1 декабря. Записаться в ранний доступ можно на главной странице, а заказать перенос вручную за 4 990 ₽ — в Telegram @svintsovyan.
Частые вопросы
Можно ли перенести бота в MAX без программиста?
Можно заказать перенос под ключ. Самому без программиста нельзя: нужно поменять адрес API в коде и перезапустить бота.
Сколько времени занимает перенос?
Ручная переделка под MAX Bot API занимает от одного-двух дней на бота. Через шлюз нужно поменять одну строку и перезапустить бота.
Нужно ли заново создавать бота?
Да, бот в MAX создаётся отдельно в кабинете «MAX для бизнеса». Код и сценарии можно оставить прежними.