Установка
1. Установите базовую библиотеку
pip install maxapi-python==1.2.52. Получите лицензионный ключ
Приобретите на maxhub.agency/tools или через бот @maxhub_agency_bot. После оплаты ключ придёт автоматически в формате MH-XXXX-XXXX-XXXX-XXXX.
3. Настройте переменную окружения
export MAXHUB_LICENSE_KEY="MH-XXXX-XXXX-XXXX-XXXX"Или в файле .env:
MAXHUB_LICENSE_KEY=MH-XXXX-XXXX-XXXX-XXXX4. Подключите SDK
# Импортируйте ПЕРЕД использованием maxapi
import license_check # проверка лицензии
import pymax_patch # патчи + новые методы
from maxapi import Bot
bot = Bot(token="YOUR_MAX_TOKEN")Что исправлено
Восемь критических багов оригинальной библиотеки, которые ломали продакшн-сценарии.
invite/remove падали при определённых ответах сервера. Добавлен безопасный парсинг с fallback.
Одновременные запросы через SocketMixin вызывали коллизии seq-номеров. Добавлен asyncio.Semaphore(200).
edit_message дважды парсил markdown, ломая форматирование. Исправлено.
Писал данные в stdout. Заменено на logger.debug.
lz4.decompress падал на больших сообщениях. Добавлен динамический размер буфера.
_send_notification_response падал при определённых payload. Обёрнут в safe mode.
Падал с custom session.db. Исправлено.
Все Database-методы обёрнуты в try/except с логированием.
Новые методы
Семь методов, которых нет в оригинальной библиотеке.
create_channel()
Создаёт новый канал в MAX.
channel, message = await bot.create_channel(
name="Мой канал",
description="Описание канала",
access="public" # "public" или "private"
)
print(f"Канал создан: {channel.id}")Кортеж (Channel, Message)promote_admin()
Назначает пользователя администратором канала.
success = await bot.promote_admin(
chat_id=123456789,
user_id=987654321,
permissions=4026, # полные права админа
web_token="YOUR_WEB_TOKEN"
)booldemote_admin()
Снимает администратора канала.
success = await bot.demote_admin(
chat_id=123456789,
user_id=987654321,
web_token="YOUR_WEB_TOKEN"
)boolset_chat_avatar()
Устанавливает аватарку чата или канала.
success = await bot.set_chat_avatar(
chat_id=123456789,
photo=open("avatar.jpg", "rb")
)boolset_chat_banner()
Устанавливает баннер (обложку) канала.
success = await bot.set_chat_banner(
chat_id=123456789,
photo=open("banner.jpg", "rb")
)boolforward_message()
Пересылает сообщение между чатами.
new_msg = await bot.forward_message(
from_chat_id=111111111,
message_id=42,
to_chat_id=222222222,
text="Дополнительный комментарий" # опционально
)Messagesend_typing()
Отправляет индикатор "печатает…".
await bot.send_typing(chat_id=123456789)NoneКак получить WEB-токен
WEB-токен нужен для promote_admin и demote_admin в каналах. Socket API (msgpack/TCP) молча игнорирует эти операции для каналов — они работают только через WebSocket JSON.
Пошаговая инструкция
- 1Откройте web.max.ru в браузере
- 2Войдите в свой аккаунт MAX
- 3Откройте DevTools (F12 или Ctrl+Shift+I)
- 4Перейдите на вкладку Network
- 5Отфильтруйте по WS (WebSocket)
- 6Найдите активное WebSocket-соединение
- 7Перейдите на вкладку Messages
- 8Найдите сообщение с
opcode: 19 - 9В JSON найдите поле
token— это ваш WEB-токен
{
"operation": "add",
"type": "ADMIN",
"permissions": 4026
}{
"operation": "remove",
"type": "ADMIN"
}send_fake_telemetry=False — обязательно, иначе дисконнект. WEB-токен отличается от обычного токена бота и может истекать — проверяйте периодически.Troubleshooting
Частые проблемы и их решения.
«License key not found»
MAXHUB_LICENSE_KEY. Ключ должен быть в формате MH-XXXX-XXXX-XXXX-XXXX.«License expired»
«Сервер лицензий недоступен»
promote_admin не работает
web_token. Socket API молча игнорирует promote для каналов.KeyError при invite/remove
lz4 decompress ошибки
Двойное форматирование в edit_message
Поддержка
Поддержка в Telegram-чате
Приоритетная поддержка <2ч + консультации по архитектуре
© 2026 MAXHUB · Все права защищены