Python wrapper для API мессенджера Max
Python 3.11+ License: MIT Ruff Packaging
⚠️ Дисклеймер
- Это неофициальная библиотека для работы с внутренним API Max.
- Использование может нарушать условия предоставления услуг сервиса.
- Вы используете её исключительно на свой страх и риск.
- Разработчики и контрибьюторы не несут никакой ответственности за любые последствия использования этого пакета, включая, но не ограничиваясь: блокировку аккаунтов, утерю данных, юридические риски и любые другие проблемы.
- API может быть изменен в любой момент без предупреждения.
pymax — асинхронная Python библиотека для работы с API мессенджера Max. Предоставляет интерфейс для отправки сообщений, управления чатами, каналами и диалогами через WebSocket соединение.
- Вход по номеру телефона
- Отправка, редактирование и удаление сообщений
- Работа с чатами и каналами
- История сообщений
Important
Для работы библиотеки требуется Python 3.10 или выше
pip install -U maxapi-python
uv add -U maxapi-python
import asyncio from pymax import MaxClient, Message # Инициализация клиента phone = "+1234567890" client = MaxClient(phone=phone, work_dir="cache") # Обработчик входящих сообщений @client.on_message() async def handle_message(message: Message) -> None: print(f"{message.sender}: {message.text}") # Обработчик запуска клиента @client.on_start async def handle_start() -> None: print("Клиент запущен") # Получение истории сообщений history = await client.fetch_history(chat_id=0) if history: for message in history: user = await client.get_user(message.sender) if user: print(f"{user.names[0].name}: {message.text}") async def main() -> None: await client.start() # Работа с чатами for chat in client.chats: print(f"Чат: {chat.title}") # Отправка сообщения message = await client.send_message( "Привет от PyMax!", chat.id, notify=True ) # Редактирование сообщения await asyncio.sleep(2) await client.edit_message( chat.id, message.id, "Привет от PyMax! (отредактировано)" ) # Удаление сообщения await asyncio.sleep(2) await client.delete_message(chat.id, [message.id], for_me=False) # Работа с диалогами for dialog in client.dialogs: print(f"Диалог: {dialog.last_message.text}") # Работа с каналами for channel in client.channels: print(f"Канал: {channel.title}") await client.close() if __name__ == "__main__": asyncio.run(main())
Этот проект распространяется под лицензией MIT. См. файл LICENSE для получения информации.
Спасибо всем за помощь в разработке!