|
| 1 | +# MaxBot API Client (Python) |
| 2 | + |
| 3 | +`maxbot-api-client-python` — это библиотека для интеграции с API MAX Bot. Этот проект предоставляет структурированный интерфейс для взаимодействия с конфигурациями бота, управления сообщениями, отправки медиафайлов и подписки на события через long-polling. |
| 4 | + |
| 5 | +Для использования библиотеки потребуется получить токен бота в консоли разработчика MAX bot. |
| 6 | + |
| 7 | +## API |
| 8 | + |
| 9 | +Документацию по REST API MAX можно найти по ссылке https://dev.max.ru/docs-api. Библиотека является оберткой для REST API, поэтому документация по указанной выше ссылке также применима к используемым здесь моделям и параметрам запроса. |
| 10 | + |
| 11 | +## Поддержка |
| 12 | + |
| 13 | +[](mailto:support@green-bot.com) |
| 14 | +[](https://t.me/greenapi_support_ru_bot) |
| 15 | +[](https://wa.me/77780739095) |
| 16 | + |
| 17 | +## Руководства и новости |
| 18 | + |
| 19 | +[](https://www.youtube.com/@green-api) |
| 20 | +[](https://t.me/green_api) |
| 21 | +[](https://whatsapp.com/channel/0029VaHUM5TBA1f7cG29nO1C) |
| 22 | + |
| 23 | + |
| 24 | +## Установка |
| 25 | + |
| 26 | +**Убедитесь, что у вас установлен Python версии 3.8 или выше:** |
| 27 | + |
| 28 | +```shell |
| 29 | +python --version |
| 30 | +``` |
| 31 | + |
| 32 | +**Установите библиотеку:** |
| 33 | + |
| 34 | +```bash |
| 35 | +pip install -e . |
| 36 | +``` |
| 37 | + |
| 38 | +**Импорт:** |
| 39 | + |
| 40 | +```python |
| 41 | +from maxbot_api_client_python import API, Config |
| 42 | +``` |
| 43 | + |
| 44 | +## Использование и примеры |
| 45 | + |
| 46 | +**Как инициализировать клиент:** |
| 47 | + |
| 48 | +```python |
| 49 | +try: |
| 50 | + bot = API(Config( |
| 51 | + base_url="https://platform-bot.max.ru", # Base url for MAX API requests |
| 52 | + token="YOUR_BOT_TOKEN", # Max bot token |
| 53 | + global_rps=25, |
| 54 | + timeout=35 |
| 55 | +)) |
| 56 | +except ValueError as e: |
| 57 | + print(f"Initialization error: {e}") |
| 58 | +``` |
| 59 | + |
| 60 | +**Как получить информацию о боте:** |
| 61 | + |
| 62 | +* Ссылка на синхронный пример: [GetBot.py](./examples/sync/GetBot.py) |
| 63 | + |
| 64 | +```python |
| 65 | +response = bot.bots.GetBot() |
| 66 | +``` |
| 67 | + |
| 68 | +* Ссылка на асинхронный пример: [GetBotAsync.py](./examples/async/GetBotAsync.py) |
| 69 | + |
| 70 | +```python |
| 71 | + |
| 72 | +response = await bot.bots.GetBotAsync() |
| 73 | +``` |
| 74 | + |
| 75 | +**Как отправить сообщение:** |
| 76 | + |
| 77 | +* Ссылка на синхронный пример: [SendMessage.py](./examples/sync/SendMessage.py) |
| 78 | + |
| 79 | +```python |
| 80 | +response = bot.messages.SendMessage(SendMessageReq( |
| 81 | + user_id=1234567890, |
| 82 | + text="Hello world!" |
| 83 | +)) |
| 84 | +``` |
| 85 | + |
| 86 | +* Ссылка на асинхронный пример: [SendMessage.py](./examples/async/SendMessageAsync.py) |
| 87 | + |
| 88 | +```python |
| 89 | +response = await bot.messages.SendMessageAsync(SendMessageReq( |
| 90 | + user_id=1234567890, |
| 91 | + text="Hello world from Async!" |
| 92 | +)) |
| 93 | +``` |
| 94 | + |
| 95 | +**Как легко отправить файл (по ссылке или локальный):** |
| 96 | + |
| 97 | +* Ссылка на синхронный пример: [SendFile.py](./examples/sync/SendFile.py) |
| 98 | + |
| 99 | +```python |
| 100 | +response = bot.helpers.SendFile(SendFileReq( |
| 101 | + chat_id=1234567890, |
| 102 | + text="Check this!", |
| 103 | + file_source="https://example.com/image.png" |
| 104 | +)) |
| 105 | +``` |
| 106 | + |
| 107 | +* Ссылка на асинхронный пример: [SendFileAsync.py](./examples/async/SendFileAsync.py) |
| 108 | + |
| 109 | +```python |
| 110 | +response = await bot.helpers.SendFileAsync(SendFileReq( |
| 111 | + chat_id=1234567890, |
| 112 | + text="Посмотри на этот файл!", |
| 113 | + file_source="https://example.com/image.png" |
| 114 | +)) |
| 115 | +``` |
| 116 | + |
| 117 | +**Как вручную загрузить файл (для кастомных вложений):** |
| 118 | + |
| 119 | +* Ссылка на синхронный пример: [UploadFile.py](./examples/sync/UploadFile.py) |
| 120 | + |
| 121 | +```python |
| 122 | +response = bot.uploads.UploadFile(UploadFileReq( |
| 123 | + type=UploadType.IMAGE, |
| 124 | + file_path="examples/assets/file.png" |
| 125 | +)) |
| 126 | +``` |
| 127 | + |
| 128 | +* Ссылка на асинхронный пример: [UploadFileAsync.py](./examples/async/UploadFileAsync.py) |
| 129 | + |
| 130 | +```python |
| 131 | +response = await bot.uploads.UploadFileAsync(UploadFileReq( |
| 132 | + type=UploadType.IMAGE, |
| 133 | + file_path="examples/assets/file.png" |
| 134 | +)) |
| 135 | +``` |
| 136 | + |
| 137 | +**Как получить входящее уведомление:** |
| 138 | + |
| 139 | +* Ссылка на синхронный пример: [GetUpdates.py](./examples/sync/GetUpdates.py) |
| 140 | + |
| 141 | +```python |
| 142 | +response = bot.subscriptions.GetUpdates(GetUpdatesReq( |
| 143 | + marker=0, |
| 144 | + timeout=30 |
| 145 | +)) |
| 146 | +``` |
| 147 | + |
| 148 | +* Ссылка на асинхронный пример: [GetUpdatesAsync.py](./examples/async/GetUpdatesAsync.py) |
| 149 | + |
| 150 | +```python |
| 151 | +response = await bot.subscriptions.GetUpdatesAsync(GetUpdatesReq( |
| 152 | + marker=0, |
| 153 | + timeout=30 |
| 154 | +)) |
| 155 | +``` |
| 156 | + |
| 157 | +----- |
| 158 | + |
| 159 | +## Список примеров |
| 160 | + |
| 161 | +| Описание | Ссылка на пример | |
| 162 | +| ---------------------------------------------- | ------------------------------------------------------------ | |
| 163 | +| Как отправить сообщение | [SendMessage.py](./examples/sync/SendMessage.py) | |
| 164 | +| Как отправить сообщение *асинхронно* | [SendMessageAsync.py](./examples/async/SendMessageAsync.py) | |
| 165 | +| Как получить информацию о боте | [GetBot.py](./examples/sync/GetBot.py) | |
| 166 | +| Как получить информацию о боте *асинхронно* | [GetBotAsync.py](./examples/async/GetBotAsync.py) | |
| 167 | +| Как загрузить файл | [UploadFile.py](./examples/sync/UploadFile.py) | |
| 168 | +| Как загрузить файл *асинхронно* | [UploadFileAsync.py](./examples/async/UploadFileAsync.py) | |
| 169 | +| Как отправить файл | [SendFile.py](./examples/sync/SendFile.py) | |
| 170 | +| Как отправить файл *асинхронно* | [SendFileAsync.py](./examples/async/SendFileAsync.py) | |
| 171 | +| Как получить входящее уведомление | [GetUpdates.py](./examples/sync/GetUpdates.py) | |
| 172 | +| Как получить входящее уведомление *асинхронно* | [GetUpdates.py](./examples/async/GetUpdatesAsync.py) | |
| 173 | + |
| 174 | +## Список всех методов библиотеки |
| 175 | + |
| 176 | +| Метод API | Описание | Ссылка на документацию MAX | Ссылка на документацию библиотеки | |
| 177 | +|-----------------|-------------------------|------------------------------------------------|----------------------------------------------| |
| 178 | +| `Bots.GetBot` | Получает информацию о боте | [GetBot](https://dev.max.ru/docs-api/methods/GET/me) | [GetBot](./docs/bots/GetBot.md) | |
| 179 | +| `Bots.PatchBot` | Изменяет информацию о боте | | [PatchBot](./docs/bots/PatchBot.md) | |
| 180 | +| `Chats.GetChats` | Возвращает список групповых чатов, в которых участвовал бот | [GetChats](https://dev.max.ru/docs-api/methods/GET/chats) | [GetChats](./docs/chats/GetChats.md) | |
| 181 | +| `Chats.GetChat` | Возвращает информацию о групповом чате по его ID | [GetChat](https://dev.max.ru/docs-api/methods/GET/chats/-chatId-) | [GetChat](./docs/chats/GetChat..md) | |
| 182 | +| `Chats.EditChat` | Позволяет редактировать информацию о групповом чате | [EditChat](https://dev.max.ru/docs-api/methods/PATCH/chats/-chatId-) | [EditChat](./docs/chats/EditChat.md) | |
| 183 | +| `Chats.DeleteChat` | Удаляет групповой чат для всех участников | [DeleteChat](https://dev.max.ru/docs-api/methods/DELETE/chats/-chatId-) | [DeleteChat](./docs/chats/DeleteChat.md) | |
| 184 | +| `Chats.SendAction` | Позволяет отправлять следующие действия бота в групповой чат | [SendAction](https://dev.max.ru/docs-api/methods/POST/chats/-chatId-/actions) | [SendAction](./docs/chats/SendAction.md) | |
| 185 | +| `Chats.GetPinnedMessage` | Возвращает закрепленное сообщение в чате | [GetPinnedMessage](https://dev.max.ru/docs-api/methods/GET/chats/-chatId-/pin) | [GetPinnedMessage](./docs/chats/GetPinnedMessage.md) | |
| 186 | +| `Chats.PinMessage` | Закрепляет сообщение в групповом чате | [PinMessage](https://dev.max.ru/docs-api/methods/PUT/chats/-chatId-/pin) | [PinMessage](./docs/chats/PinMessage.md) | |
| 187 | +| `Chats.UnpinMessage` | Удаляет закрепленное сообщение в групповом чате | [UnpinMessage](https://dev.max.ru/docs-api/methods/DELETE/chats/-chatId-/pin) | [UnpinMessage](./docs/chats/UnpinMessage.md) | |
| 188 | +| `Chats.GetChatMembership` | Возвращает членство бота в групповом чате | [GetChatMembership](https://dev.max.ru/docs-api/methods/GET/chats/-chatId-/members/me) | [GetChatMembership](./docs/chats/GetChatMembership.md) | |
| 189 | +| `Chats.LeaveChat` | Удаляет бота из группового чата | [LeaveChat](https://dev.max.ru/docs-api/methods/DELETE/chats/-chatId-/members/me) | [LeaveChat](./docs/chats/LeaveChat.md) | |
| 190 | +| `Chats.GetChatAdmins` | Возвращает список всех администраторов группового чата | [GetChatAdmins](https://dev.max.ru/docs-api/methods/GET/chats/-chatId-/members/admins) | [GetChatAdmins](./docs/chats/GetChatAdmins.md) | |
| 191 | +| `Chats.SetChatAdmins` | Назначает участника группы администратором | [SetChatAdmins](https://dev.max.ru/docs-api/methods/POST/chats/-chatId-/members/admins) | [SetChatAdmins](./docs/chats/SetChatAdmins.md) | |
| 192 | +| `Chats.DeleteAdmin` | Отменяет права администратора пользователя в групповом чате | [DeleteAdmin](https://dev.max.ru/docs-api/methods/DELETE/chats/-chatId-/members/admins/-userId-) | [DeleteAdmin](./docs/chats/DeleteAdmin.md) | |
| 193 | +| `Chats.GetChatMembers` | Возвращает список участников группового чата | [GetChatMembers](https://dev.max.ru/docs-api/methods/GET/chats/-chatId-/members) | [GetChatMembers](./docs/chats/GetChatMembers.md) | |
| 194 | +| `Chats.AddMembers` | Добавляет участников в групповой чат | [AddMembers](https://dev.max.ru/docs-api/methods/POST/chats/-chatId-/members) | [AddMembers](./docs/chats/AddMembers.md) | |
| 195 | +| `Chats.DeleteMember` | Удаляет участника из группового чата | [DeleteMember](https://dev.max.ru/docs-api/methods/DELETE/chats/-chatId-/members) | [DeleteMember](./docs/chats/DeleteMember.md) | |
| 196 | +| `Subscriptions.GetSubscriptions` | Возвращает список подписок на уведомления веб-хуков | [GetSubscriptions](https://dev.max.ru/docs-api/methods/GET/subscriptions) | [GetSubscriptions](./docs/subscriptions/GetSubscriptions.md) | |
| 197 | +| `Subscriptions.Subscribe` | Настраивает доставку событий бота через веб-хук | [Subscribe](https://dev.max.ru/docs-api/methods/POST/subscriptions) | [Subscribe](./docs/subscriptions/Subscribe.md) | |
| 198 | +| `Subscriptions.Unsubscribe` | Отменяет подписку бота на получение обновлений через веб-хук | [Unsubscribe](https://dev.max.ru/docs-api/methods/DELETE/subscriptions) | [Unsubscribe](./docs/subscriptions/Unsubscribe.md)| |
| 199 | +| `Subscriptions.GetUpdates` | Получает входящие обновления | [GetUpdates](https://dev.max.ru/docs-api/methods/GET/updates) | [GetUpdates](./docs/subscriptions/GetUpdates.md) | |
| 200 | +| `Upload.UploadFile` | Загружает файл на серверы MAX для последующей передачи | [UploadFile](https://dev.max.ru/docs-api/methods/POST/uploads) | [UploadFile](./docs/upload/UploadFile.md) | |
| 201 | +| `Helpers.SendFile` | Упрощает отправку файлов, автоматически определяя URL или путь | | [SendFile](./docs/helpers/SendFile.md) | |
| 202 | +| `Messages.GetMessages` | Возвращает информацию о сообщении или массив сообщений из чата | [GetMessages](https://dev.max.ru/docs-api/methods/GET/messages) | [GetMessages](./docs/messages/GetMessages.md) | |
| 203 | +| `Messages.SendMessage` | Отправляет текстовое или медиа-сообщение указанному пользователю или в чат | [SendMessage](https://dev.max.ru/docs-api/methods/POST/messages) | [SendMessage](./docs/messages/SendMessage.md) | |
| 204 | +| `Messages.EditMessage` | Редактирует текст или медиафайл ранее отправленного сообщения | [EditMessage](https://dev.max.ru/docs-api/methods/PUT/messages) | [EditMessage](./docs/messages/EditMessage.md) | |
| 205 | +| `Messages.DeleteMessage` | Удаляет сообщение из чата | [DeleteMessage](https://dev.max.ru/docs-api/methods/DELETE/messages) | [DeleteMessage](./docs/messages/DeleteMessage.md) | |
| 206 | +| `Messages.GetMessage` | Извлекает содержимое и метаданные конкретного сообщения по его ID | [GetMessage](https://dev.max.ru/docs-api/methods/GET/messages/-messageId-) | [GetMessage](./docs/messages/GetMessage.md) | |
| 207 | +| `Messages.GetVideoInfo` | Возвращает подробную информацию о прикрепленном видео | [GetVideoInfo](https://dev.max.ru/docs-api/methods/GET/videos/-videoToken-) | [GetVideoInfo](./docs/messages/GetVideoInfo.md) | |
| 208 | +| `Messages.AnswerCallback` | Отправляет ответ после того, как пользователь нажмет кнопку | [AnswerCallback](https://dev.max.ru/docs-api/methods/POST/answers) | [AnswerCallback](./docs/messages/AnswerCallback.md)| |
0 commit comments