Skip to main content

Max Messenger API — обёртка на Python

Возможности

  • Двойная аутентификация: поддержка как токен-ориентированной аутентификации для уже существующих сессий, так и верификации по номеру телефона для новых сессий.
  • Обработка событий в реальном времени: позволяет задавать пользовательские функции-обработчики для событий, приходящих от сервера (например, новых сообщений или обновлений статуса собеседника).
  • Автоматическое восстановление соединения: автоматически переподключается и повторно аутентифицирует сессию в случае обрыва соединения, обеспечивая надёжность работы.
  • Вспомогательные методы: содержит удобные методы для выполнения типичных действий — получение истории чата, загрузка файлов и видео, управление контактами и т.д.

Установка

Установите библиотеку с помощью pip:

pip install MaxBridge

Использование

Инициализация

Для начала работы создайте экземпляр класса MaxAPI. Вы можете аутентифицироваться с помощью уже имеющегося токена или пройти верификацию по номеру телефона.

С использованием токена аутентификации:

Если у вас уже есть действительный auth_token, вы можете передать его при инициализации для быстрого подключения.

from max_api import MaxAPI

AUTH_TOKEN = "ваш_токен_аутентификации"

api = MaxAPI(auth_token=AUTH_TOKEN)

Как получить токен аутентификации

  1. Откройте веб-браузер и перейдите на веб-версию Max Messenger.
  2. Войдите в свой аккаунт Max, если вы ещё не авторизованы.
  3. После входа откройте инструменты разработчика в браузере (щёлкните правой кнопкой мыши на странице и выберите «Просмотреть код» или нажмите F12).
  4. Перейдите на вкладку «Application» («Приложение») в инструментах разработчика.
  5. В левой панели в разделе «Storage» («Хранилище») найдите и откройте «Local Storage», затем выберите домен https://web.max.ru.
  6. Найдите токен аутентификации — это значение ключа __oneme_auth.
  7. Скопируйте значение этого токена. Оно понадобится вам для аутентификации в классе MaxAPI.

Без токена аутентификации (верификация по номеру телефона):

Если у вас нет auth_token, вы можете пройти аутентификацию (войти), подтвердив номер телефона.

from max_api import MaxAPI

api = MaxAPI()

phone_number = "ваш_номер_телефона"  # например, "+79123456789"
api.send_verify_code(phone_number)

# Введите код, полученный по SMS
code = input("Введите код подтверждения: ")
api.check_verify_code(code)

Отправка сообщения

После успешной аутентификации вы можете легко отправлять сообщения в любой чат.

# ID чата, в который нужно отправить сообщение
chat_id = "some_chat_id"
# Текст сообщения
message_text = "Привет из API!"

# Отправка сообщения
api.send_message(chat_id, message_text)

Также можно отправить ответ на конкретное сообщение:

api.send_message(chat_id, "Это ответ.", reply_id="id_сообщения_для_ответа")

Получение событий

Вы можете обрабатывать события в реальном времени (например, новые сообщения), передав функцию-обработчик в параметр on_event при инициализации.

import json

def my_event_handler(event_data):
    """
    Пользовательская функция для обработки входящих событий от сервера.
    """
    opcode = event_data.get("opcode")
    if opcode == 128:  # Событие: новое сообщение
        print(f"Получено новое сообщение: {json.dumps(event_data, indent=2, ensure_ascii=False)}")
    else:
        print(f"Событие от сервера (Opcode {opcode}): {json.dumps(event_data, indent=2, ensure_ascii=False)}")

# Инициализация API с пользовательским обработчиком событий
api = MaxAPI(auth_token=AUTH_TOKEN, on_event=my_event_handler)

# Теперь API будет использовать my_event_handler для обработки входящих событий.
# Не забудьте оставить скрипт запущенным, чтобы получать события.

Получение истории чата

Историю сообщений любого чата можно получить простым вызовом метода.

# ID чата, из которого нужно получить историю
chat_id = "some_chat_id"
# Количество сообщений для получения
message_count = 50

# Получение истории чата
history = api.get_history(chat_id, count=message_count)
print(history)

Подписка на чат

Чтобы получать обновления в реальном времени для конкретного чата (новые сообщения, индикаторы набора текста и т.д.), необходимо подписаться на него.

# ID чата для подписки
chat_id = "some_chat_id"

# Подписка на чат
api.subscribe_to_chat(chat_id)

Завершение работы

API автоматически обрабатывает сигналы SIGINT (Ctrl+C) и SIGTERM. Также вы можете вручную вызвать метод close(), чтобы отключиться от WebSocket-сервера.

api.close()

Справочник API

MaxAPI(auth_token=None, on_event=None)

  • auth_token (str, необязательный): токен аутентификации для сессии.
  • on_event (callable, необязательный): функция-обработчик событий от сервера. Принимает один аргумент — словарь с данными события.

Методы

  • send_message(chat_id, text, reply_id=None, wait_for_response=False, format=False): отправляет сообщение в чат.
  • get_history(chat_id, count=30, from_timestamp=None): получает историю сообщений чата.
  • subscribe_to_chat(chat_id, subscribe=True): подписывается на обновления чата или отписывается от них.
  • mark_as_read(chat_id, message_id): помечает конкретное сообщение как прочитанное.
  • get_contact_details(contact_ids): получает информацию о профиле одного или нескольких контактов.
  • get_contact_by_phone(phone_number): находит контакт по номеру телефона.
  • get_chat_by_id(chat_id): возвращает чат из локального кэша по его ID.
  • get_all_chats(): возвращает словарь всех закэшированных чатов.
  • send_verify_code(phone_number): отправляет код подтверждения на указанный номер телефона для начала аутентификации.
  • check_verify_code(code): проверяет код, полученный по SMS, и завершает аутентификацию.
  • send_generic_command(command_name, payload, wait_for_response=True, timeout=10): отправляет произвольную команду API по её строковому имени (например, 'GET_HISTORY').
  • get_video(id): скачивает видео по его ID и возвращает как байтовый поток.
  • get_file(id, chat_id, msg_id): скачивает файл по его ID и возвращает его содержимое и имя.
  • close(): отключается от WebSocket-сервера и завершает работу цикла событий.

Metadata

Release files for MaxBridge 1.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for MaxBridge 1.8.0
File Size Uploaded
maxbridge-1.8.0.tar.gz 13.3 kB Details

Release files / maxbridge-1.8.0.tar.gz

Download URL maxbridge-1.8.0.tar.gz
Size 13.3 kB
Tags Source
SHA-256 checksum
How to use checksums
a3058293032b21b193ede786484102950f1210e389bf51b1f7fa3f9c603d6283
BLAKE2b-256 checksum
How to use checksums
ddc5ac125c5af77dc06e0fa1ad7316081a9cd3b07e98fea55edcb9a62503d0dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 24, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

1.8.0 This release

1 release file

1.7.2

1 release file

1.7.1

1 release file

1.7.0

1 release file

1.6.2

1 release file

1.6.1

1 release file

1.6.0

1 release file

1.5.4

1 release file

1.5.3

1 release file

1.5.2

1 release file

1.5.1

1 release file

1.5.0

1 release file

1.4.0

1 release file

1.3.4

1 release file

1.3.3

1 release file

1.3.2

1 release file

1.3.1

1 release file

1.3.0

1 release file

1.2.2

1 release file

1.2.1

1 release file

1.2.0

1 release file

1.1.0

1 release file

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page