Skip to content

Repository files navigation

MAX BOT API Client (Python)

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

Для использования библиотеки потребуется получить токен бота в консоли разработчика MAX bot.
Ознакомиться с инструкцией можно по ссылке.

API

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

Документацию по MAX BOT API можно найти по ссылке green-api.com/max-bot-api/docs.

Поддержка

SupportSupportSupport

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

GuidesNewsNews

Установка

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

python --version

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

pip install maxbot-api-client-python

Импорт:

frommaxbot_api_client_pythonimportAPI, Config

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

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

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

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

Использование контекстного менеджера (with / async with) гарантирует, что все сетевые соединения будут автоматически и безопасно закрыты по завершении работы.

frommaxbot_api_client_pythonimportAPI, Configcfg=Config(
base_url="https://platform-api.max.ru",
token="YOUR_BOT_TOKEN",
ratelimiter=25,
timeout=30
)
# Синхронный режим:withAPI(cfg) asbot:
pass# Асинхронный режим:asyncwithAPI(cfg) asbot:
pass

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

  • Ссылка на синхронный пример: get_bot.py
withAPI(cfg) asbot:
response=bot.bots.get_bot()
asyncwithAPI(cfg) asbot:
response=awaitbot.bots.get_bot_async()

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

withAPI(cfg) asbot:
response=bot.messages.send_message(SendMessageReq(
user_id=1234567890,
text="Hello world!"
))
asyncwithAPI(cfg) asbot:
response=awaitbot.messages.send_message_async(SendMessageReq(
user_id=1234567890,
text="Hello world from Async!"
))

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

  • Ссылка на синхронный пример: send_file.py
withAPI(cfg) asbot:
response=bot.helpers.send_file(SendFileReq(
chat_id=1234567890,
text="Check this!",
file_source="https://storage.yandexcloud.net/sw-prod-03-test/ChatBot/corgi.jpg"
))
asyncwithAPI(cfg) asbot:
response=awaitbot.helpers.send_file_async(SendFileReq(
chat_id=1234567890,
text="Посмотри на этот файл!",
file_source="https://storage.yandexcloud.net/sw-prod-03-test/ChatBot/corgi.jpg"
))

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

withAPI(cfg) asbot:
response=bot.uploads.upload_file(UploadFileReq(
type=UploadType.image,
file_path="examples/assets/file.jpg"
))
asyncwithAPI(cfg) asbot:
response=awaitbot.uploads.upload_file_async(UploadFileReq(
type=UploadType.image,
file_path="examples/assets/file.jpg"
))

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

withAPI(cfg) asbot:
response=bot.subscriptions.get_updates(GetUpdatesReq(
marker=0,
timeout=30
))
asyncwithAPI(cfg) asbot:
response=awaitbot.subscriptions.get_updates_async(GetUpdatesReq(
marker=0,
timeout=30
))

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

ОписаниеСсылка на пример
Как отправить сообщениеsend_message.py
Как отправить сообщение асинхронноget_messages_async.py
Как получить информацию о ботеget_bot.py
Как получить информацию о боте асинхронноget_bot_async.py
Как загрузить файлupload_file.py
Как загрузить файл асинхронноupload_file_async.py
Как отправить файлsend_file.py
Как отправить файл асинхронноsend_file_async.py
Как получить входящее уведомлениеget_updates.py
Как получить входящее уведомление асинхронноget_updates_async.py

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

Метод APIОписаниеСсылка на документацию MAXСсылка на документацию MAX BOT API
bots.get_botПолучает информацию о ботеget_botGetBot
bots.patch_botИзменяет информацию о ботеPatchBot
chats.get_chatsВозвращает список групповых чатов, в которых участвовал ботget_chatsGetChats
chats.get_chatВозвращает информацию о групповом чате по его IDget_chatGetChat
chats.edit_chatПозволяет редактировать информацию о групповом чатеedit_chatEditChat
chats.delete_chatУдаляет групповой чат для всех участниковdelete_chatDeleteChat
chats.send_actionПозволяет отправлять следующие действия бота в групповой чатsend_actionSendAction
chats.get_pinned_messageВозвращает закрепленное сообщение в чатеget_pinned_messageGetPinnedMessage
chats.pin_messageЗакрепляет сообщение в групповом чатеpin_messagePinMessage
chats.unpin_messageУдаляет закрепленное сообщение в групповом чатеunpin_messageUnpinMessage
chats.get_chat_membershipВозвращает членство бота в групповом чатеget_chat_membershipGetChatMembership
chats.leave_chatУдаляет бота из группового чатаleave_chatLeaveChat
chats.get_chat_adminsВозвращает список всех администраторов группового чатаget_chat_adminsGetChatAdmins
chats.set_chat_adminsНазначает участника группы администраторомset_chat_adminsSetChatAdmins
chats.delete_adminОтменяет права администратора пользователя в групповом чатеdelete_adminDeleteAdmin
chats.get_chat_membersВозвращает список участников группового чатаget_chat_membersGetChatMembers
chats.add_membersДобавляет участников в групповой чатadd_membersAddMembers
chats.delete_memberУдаляет участника из группового чатаdelete_memberDeleteMember
subscriptions.get_subscriptionsВозвращает список подписок на уведомления веб-хуковget_subscriptionsGetSubscriptions
subscriptions.subscribeНастраивает доставку событий бота через веб-хукsubscribeSubscribe
subscriptions.unsubscribeОтменяет подписку бота на получение обновлений через веб-хукunsubscribeUnsubscribe
subscriptions.get_updatesПолучает входящие обновленияget_updatesGetUpdates
upload.upload_fileЗагружает файл на серверы MAX для последующей передачиupload_fileUploadFile
helpers.send_fileУпрощает отправку файлов, автоматически определяя URL или путьSendFile
messages.get_messagesВозвращает информацию о сообщении или массив сообщений из чатаget_messagesGetMessages
messages.send_messageОтправляет текстовое или медиа-сообщение указанному пользователю или в чатsend_messageSendMessage
messages.edit_messageРедактирует текст или медиафайл ранее отправленного сообщенияedit_messageEditMessage
messages.delete_messageУдаляет сообщение из чатаdelete_messageDeleteMessage
messages.get_messageИзвлекает содержимое и метаданные конкретного сообщения по его IDget_messageGetMessage
messages.get_video_infoВозвращает подробную информацию о прикрепленном видеоget_video_infoGetVideoInfo
messages.answer_callbackОтправляет ответ после того, как пользователь нажмет кнопкуanswer_callbackAnswerCallback

About

This library helps you easily create a Python application for MAX Bots

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages