Python wrapper для API мессенджера Max
Caution
Этот репозиторий больше не поддерживается. Новые фичи и фиксы не принимаются, Issues/PR могут быть отключены, релизы не планируются.
Что делать пользователям:
- ✅ Переходите на аналоги (если есть)
- ✅ Зафиксируйте версию:
maxapi-python==X.Y.Z ⚠️ Используйте на свой риск: внутренний API Max может измениться без предупреждения
⚠️ Дисклеймер
- Это неофициальная библиотека для работы с внутренним API Max.
- Использование может нарушать условия предоставления услуг сервиса.
- Вы используете её исключительно на свой страх и риск.
- Разработчики и контрибьюторы не несут никакой ответственности за любые последствия использования этого пакета, включая, но не ограничиваясь: блокировку аккаунтов, утерю данных, юридические риски и любые другие проблемы.
- API может быть изменен в любой момент без предупреждения.
pymax — асинхронная Python библиотека для работы с API мессенджера Max. Предоставляет интерфейс для отправки сообщений, управления чатами, каналами и диалогами через WebSocket соединение.
- Вход по номеру телефона
- Отправка, редактирование и удаление сообщений
- Работа с чатами и каналами
- История сообщений
Important
Для работы библиотеки требуется Python 3.10 или выше
pip install -U maxapi-pythonuv add -U maxapi-pythonImportant
Параметр device_type в UserAgentPayload критически важен для выбора способа авторизации:
Вход по номеру телефона (DESKTOP):
from pymax import SocketMaxClient from pymax.payloads import UserAgentPayload ua = UserAgentPayload(device_type="DESKTOP", app_version="25.12.13") client = SocketMaxClient( phone="+79111111111", work_dir="cache", headers=ua, )Вход через QR-код (WEB) — токен совместим с веб-версией Max:
from pymax import MaxClient from pymax.payloads import UserAgentPayload ua = UserAgentPayload(device_type="WEB", app_version="25.12.13") client = MaxClient( phone="+7911111111", work_dir="cache", headers=ua, )import asyncio from pymax import MaxClient, Message from pymax.filters import Filters client = MaxClient( phone="+1234567890", work_dir="cache", # директория для сессий ) # Обработка входящих сообщений @client.on_message(Filters.chat(0)) # фильтр по ID чата async def on_message(msg: Message) -> None: print(f"[{msg.sender}] {msg.text}") await client.send_message( chat_id=msg.chat_id, text="Привет, я бот на PyMax!", ) await client.add_reaction( chat_id=msg.chat_id, message_id=str(msg.id), reaction="👍", ) @client.on_start async def on_start() -> None: print(f"Клиент запущен. Ваш ID: {client.me.id}") # Получение истории history = await client.fetch_history(chat_id=0) print("Последние сообщения из чата 0:") for m in history: print(f"- {m.text}") async def main(): await client.start() # подключение и авторизация if __name__ == "__main__": asyncio.run(main())Этот проект распространяется под лицензией MIT. См. файл LICENSE для получения информации.
Спасибо всем за помощь в разработке!