MAX API
Python-библиотека для работы с мессенджером MAX (ex-TamTam / OK Messenger). Поддерживает отправку сообщений, фото, работу с чатами и real-time события.
Что это такое?
MAX API — неофициальная Python-библиотека для мессенджера MAX.
Общается с сервером api.oneme.ru:443 по бинарному протоколу
(заголовок 10 байт + MessagePack-payload, опционально LZ4).
Есть класс MaxClient, методы-корутины, сессия в JSON, context manager.
ℹ️
Все сетевые методы —
async/await. Требуется Python 3.10+ и зависимости
msgpack, aiohttp, lz4.Разделы документации
Быстрый старт
Установка, первое подключение, отправка сообщения
Авторизация
SMS, QR, токен, регистрация
Чаты
Список, история, участники, создание
Сообщения
Отправка, редактирование, удаление, реакции
Контакты
Поиск, список, блокировка
Таблица OpCode
100+ wire-кодов операций
Структура пакета
# Бинарный пакет MAX (10-байтный заголовок) ┌──────────┬──────────┬──────────┬──────────┬──────────────────────────────┐ │ ver (1b) │ cmd (1b) │ seq (2b) │ op (2b) │ length (4b) │ payload ... │ └──────────┴──────────┴──────────┴──────────┴──────────────────────────────┘ # payload = msgpack({...}) или lz4_compress(msgpack({...})) если >= 32 байт
Быстрый пример
import asyncio from maxapi import MaxClient async def main(): async with MaxClient("my_session") as client: # Первый вход — по SMS await client.send_code("+79999999999") await client.sign_in(input("Код из SMS: ")) # Профиль и чаты me = client.me # dict из LOGIN-кэша chats = client.cached_chats # list чатов из LOGIN-кэша # Отправить сообщение result = await client.send_message(chat_id=34540359, text="Привет!") msg = result["message"] print(msg.get("msgId") or msg.get("id")) # ID отправленного сообщения asyncio.run(main())
ℹ️
Высокоуровневые методы MAX API часто возвращают сырой ответ сервера. Проверяйте не только ожидаемые поля, но и наличие
error в ответе.Зависимости
| Пакет | Версия | Назначение |
|---|---|---|
msgpack | ≥1.0 | Сериализация пакетов |
aiohttp | ≥3.9 | HTTP-запросы к OK API |
lz4 | ≥4.0 | Сжатие больших пакетов |