Skip to main content

Python client for MAX Bot API with Sync and Async support

Project description

MAX BOT API Client (Python)

maxbot-api-client-python — это библиотека для интеграции с MAX BOT API. Этот проект предоставляет структурированный интерфейс для взаимодействия с конфигурациями бота, управления сообщениями, отправки медиафайлов и подписки на события через long-polling.

Для использования библиотеки потребуется получить токен бота в консоли разработчика MAX bot.

API

Документацию по REST API MAX можно найти по ссылке https://dev.max.ru/docs-api. Библиотека является оберткой для REST API, поэтому документация по указанной выше ссылке также применима к используемым здесь моделям и параметрам запроса.

Поддержка

Support Support Support

Руководства и новости

Guides News News

Установка

Убедитесь, что у вас установлен Python версии 3.8 или выше:

python --version

Установите библиотеку:

pip install maxbot-api-client-python

Импорт:

from maxbot_api_client_python import API, Config

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

Параметры конфигурации:

  • base_url - Базовый URL-адрес серверов платформы MaxBot. Все методы API будут маршрутизироваться по этому корневому адресу. Актуальный адрес указан в официальной документации.
  • token - Уникальный секретный ключ авторизации (API-ключ) вашего бота. Получить его можно в личном кабинете после регистрации или создании бота на платформе business.max.ru.
  • ratelimiter - Встроенный ограничитель частоты запросов. Он контролирует количество исходящих запросов в секунду (RPS), защищая бота от блокировки со стороны сервера за превышение лимитов. Рекомендуемое значение — не менее 25.
  • timeout - Максимальное время ожидания ответа от сервера (в секундах). Если сервер не ответит в течение этого времени, запрос будет завершен с ошибкой. Оптимальное значение — 30 секунд.

Как инициализировать клиент:

try:
    bot = API(Config(
    base_url="https://platform-bot.max.ru",
    token="YOUR_BOT_TOKEN",                 # Замените на ваш токен
    ratelimiter=25,
    timeout=30
))
except ValueError as e:
    print(f"Initialization error: {e}")

Как получить информацию о боте:

  • Ссылка на синхронный пример: GetBot.py
response = bot.bots.GetBot()
  • Ссылка на асинхронный пример: GetBotAsync.py
response = await bot.bots.GetBotAsync()

Как отправить сообщение:

response = bot.messages.SendMessage(SendMessageReq(
    user_id=1234567890,
    text="Hello world!"
))
  • Ссылка на асинхронный пример: SendMessage.py
response = await bot.messages.SendMessageAsync(SendMessageReq(
    user_id=1234567890,
    text="Hello world from Async!"
))

Как легко отправить файл (по ссылке или локальный):

  • Ссылка на синхронный пример: SendFile.py
response = bot.helpers.SendFile(SendFileReq(
    chat_id=1234567890,
    text="Check this!",
    file_source="https://example.com/image.png"
))
response = await bot.helpers.SendFileAsync(SendFileReq(
    chat_id=1234567890,
    text="Посмотри на этот файл!",
    file_source="https://example.com/image.png"
))

Как вручную загрузить файл (для кастомных вложений):

  • Ссылка на синхронный пример: UploadFile.py
response = bot.uploads.UploadFile(UploadFileReq(
    type=UploadType.IMAGE,
    file_path="examples/assets/file.png"
))
response = await bot.uploads.UploadFileAsync(UploadFileReq(
    type=UploadType.IMAGE,
    file_path="examples/assets/file.png"
))

Как получить входящее уведомление:

  • Ссылка на синхронный пример: GetUpdates.py
response = bot.subscriptions.GetUpdates(GetUpdatesReq(
    marker=0,
    timeout=30
))
response = await bot.subscriptions.GetUpdatesAsync(GetUpdatesReq(
    marker=0,
    timeout=30
))

Список примеров

Описание Ссылка на пример
Как отправить сообщение SendMessage.py
Как отправить сообщение асинхронно SendMessageAsync.py
Как получить информацию о боте GetBot.py
Как получить информацию о боте асинхронно GetBotAsync.py
Как загрузить файл UploadFile.py
Как загрузить файл асинхронно UploadFileAsync.py
Как отправить файл SendFile.py
Как отправить файл асинхронно SendFileAsync.py
Как получить входящее уведомление GetUpdates.py
Как получить входящее уведомление асинхронно GetUpdates.py

Список всех методов библиотеки

Метод API Описание Ссылка на документацию MAX Ссылка на документацию библиотеки
Bots.GetBot Получает информацию о боте GetBot GetBot
Bots.PatchBot Изменяет информацию о боте PatchBot
Chats.GetChats Возвращает список групповых чатов, в которых участвовал бот GetChats GetChats
Chats.GetChat Возвращает информацию о групповом чате по его ID GetChat GetChat
Chats.EditChat Позволяет редактировать информацию о групповом чате EditChat EditChat
Chats.DeleteChat Удаляет групповой чат для всех участников DeleteChat DeleteChat
Chats.SendAction Позволяет отправлять следующие действия бота в групповой чат SendAction SendAction
Chats.GetPinnedMessage Возвращает закрепленное сообщение в чате GetPinnedMessage GetPinnedMessage
Chats.PinMessage Закрепляет сообщение в групповом чате PinMessage PinMessage
Chats.UnpinMessage Удаляет закрепленное сообщение в групповом чате UnpinMessage UnpinMessage
Chats.GetChatMembership Возвращает членство бота в групповом чате GetChatMembership GetChatMembership
Chats.LeaveChat Удаляет бота из группового чата LeaveChat LeaveChat
Chats.GetChatAdmins Возвращает список всех администраторов группового чата GetChatAdmins GetChatAdmins
Chats.SetChatAdmins Назначает участника группы администратором SetChatAdmins SetChatAdmins
Chats.DeleteAdmin Отменяет права администратора пользователя в групповом чате DeleteAdmin DeleteAdmin
Chats.GetChatMembers Возвращает список участников группового чата GetChatMembers GetChatMembers
Chats.AddMembers Добавляет участников в групповой чат AddMembers AddMembers
Chats.DeleteMember Удаляет участника из группового чата DeleteMember DeleteMember
Subscriptions.GetSubscriptions Возвращает список подписок на уведомления веб-хуков GetSubscriptions GetSubscriptions
Subscriptions.Subscribe Настраивает доставку событий бота через веб-хук Subscribe Subscribe
Subscriptions.Unsubscribe Отменяет подписку бота на получение обновлений через веб-хук Unsubscribe Unsubscribe
Subscriptions.GetUpdates Получает входящие обновления GetUpdates GetUpdates
Upload.UploadFile Загружает файл на серверы MAX для последующей передачи UploadFile UploadFile
Helpers.SendFile Упрощает отправку файлов, автоматически определяя URL или путь SendFile
Messages.GetMessages Возвращает информацию о сообщении или массив сообщений из чата GetMessages GetMessages
Messages.SendMessage Отправляет текстовое или медиа-сообщение указанному пользователю или в чат SendMessage SendMessage
Messages.EditMessage Редактирует текст или медиафайл ранее отправленного сообщения EditMessage EditMessage
Messages.DeleteMessage Удаляет сообщение из чата DeleteMessage DeleteMessage
Messages.GetMessage Извлекает содержимое и метаданные конкретного сообщения по его ID GetMessage GetMessage
Messages.GetVideoInfo Возвращает подробную информацию о прикрепленном видео GetVideoInfo GetVideoInfo
Messages.AnswerCallback Отправляет ответ после того, как пользователь нажмет кнопку AnswerCallback AnswerCallback

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

maxbot_api_client_python-1.1.0.tar.gz (23.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

maxbot_api_client_python-1.1.0-py3-none-any.whl (24.1 kB view details)

Uploaded Python 3

File details

Details for the file maxbot_api_client_python-1.1.0.tar.gz.

File metadata

File hashes

Hashes for maxbot_api_client_python-1.1.0.tar.gz
Algorithm Hash digest
SHA256 116a61aec747320c87e4da0cc533892a4f53da39c4f9d084b5abc8ba6ed68cad
MD5 bd4bcdb0ef6ad20d4e1b85ef76a2aec7
BLAKE2b-256 cd1c791b443ff6f8a87fef4aa1ba73c576f24e416b8361a80e008549ef0220b4

See more details on using hashes here.

File details

Details for the file maxbot_api_client_python-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for maxbot_api_client_python-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1f414d0fbff25910cddd74f18a10b13bc3b1df8ad71cc2cc1e8a5831d0d56d8c
MD5 2d5a61e6cb0a6f79381f60f9071a5630
BLAKE2b-256 efbb9c9763fae209933258ee9a31ddf7ba09a85b75431104a67878ae7fb6a64d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page