maxbot-api-client-python — это библиотека для интеграции с API MAX Bot. Этот проект предоставляет структурированный интерфейс для взаимодействия с конфигурациями бота, управления сообщениями, отправки медиафайлов и подписки на события через long-polling.
Для использования библиотеки потребуется получить токен бота в консоли разработчика MAX bot.
Документацию по REST API MAX можно найти по ссылке https://dev.max.ru/docs-api. Библиотека является оберткой для REST API, поэтому документация по указанной выше ссылке также применима к используемым здесь моделям и параметрам запроса.
Убедитесь, что у вас установлен Python версии 3.8 или выше:
python --versionУстановите библиотеку:
pip install -e .Импорт:
from maxbot_api_client_python import API, ConfigКак инициализировать клиент:
try:
bot = API(Config(
base_url="https://platform-bot.max.ru", # Base url for MAX API requests
token="YOUR_BOT_TOKEN", # Max bot token
global_rps=25,
timeout=35
))
except ValueError as e:
print(f"Initialization error: {e}")Как получить информацию о боте:
- Ссылка на синхронный пример: GetBot.py
response = bot.bots.GetBot()- Ссылка на асинхронный пример: GetBotAsync.py
response = await bot.bots.GetBotAsync()Как отправить сообщение:
- Ссылка на синхронный пример: SendMessage.py
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"
))- Ссылка на асинхронный пример: SendFileAsync.py
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"
))- Ссылка на асинхронный пример: UploadFileAsync.py
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
))- Ссылка на асинхронный пример: GetUpdatesAsync.py
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 |