|
| 1 | +# MAX BOT API Client (TypeScript) |
| 2 | + |
| 3 | +`maxbot-api-client-ts` — это современный TypeScript SDK для интеграции с MAX BOT API. Библиотека предоставляет строго типизированный интерфейс для управления ботами, сообщениями, чатами и медиафайлами, а также поддерживает работу через long-polling и вебхуки. |
| 4 | + |
| 5 | +Для использования библиотеки потребуется получить токен бота в консоли разработчика MAX bot. |
| 6 | +Ознакомиться с инструкцией можно [по ссылке](https://green-api.com/max-bot-api/docs/before-start/). |
| 7 | + |
| 8 | +## API |
| 9 | + |
| 10 | +Документацию по **REST API MAX** можно найти по ссылке [dev.max.ru/docs-api](https://dev.max.ru/docs-api). Библиотека является оберткой для REST API, поэтому документация по указанной выше ссылке также применима к используемым здесь моделям. |
| 11 | + |
| 12 | +Документацию по **MAX BOT API** можно найти по ссылке [green-api.com/max-bot-api/docs](https://green-api.com/max-bot-api/docs/). |
| 13 | + |
| 14 | +## Поддержка |
| 15 | + |
| 16 | +[](mailto:support@green-api.com) |
| 17 | +[](https://t.me/greenapi_support_ru_bot) |
| 18 | +[](https://wa.me/77780739095) |
| 19 | + |
| 20 | +## Руководства и новости |
| 21 | + |
| 22 | +[](https://www.youtube.com/@green-api) |
| 23 | +[](https://t.me/green_api) |
| 24 | +[](https://whatsapp.com/channel/0029VaHUM5TBA1f7cG29nO1C) |
| 25 | + |
| 26 | +----- |
| 27 | + |
| 28 | +## Установка |
| 29 | + |
| 30 | +**Убедитесь, что у вас установлена версия Node.js версии не ниже 18** |
| 31 | + |
| 32 | +```bash |
| 33 | +node -v |
| 34 | +``` |
| 35 | + |
| 36 | +```bash |
| 37 | +npm -v |
| 38 | +``` |
| 39 | + |
| 40 | +**Установите библиотеку:** |
| 41 | + |
| 42 | +```bash |
| 43 | +npm install maxbot-api-client-ts |
| 44 | +``` |
| 45 | + |
| 46 | +----- |
| 47 | + |
| 48 | +## Использование и примеры |
| 49 | + |
| 50 | +**Параметры конфигурации:** |
| 51 | + |
| 52 | +- `base_url` - Базовый URL-адрес серверов платформы MaxBot. Все методы API будут маршрутизироваться по этому корневому адресу. Актуальный адрес указан в [официальной документации](https://dev.max.ru/docs-api). |
| 53 | +- `token` - Уникальный секретный ключ авторизации (API-ключ) вашего бота. Получить его можно в личном кабинете после [регистрации или создании бота](https://green-api.com/max-bot-api/docs/before-start/) на платформе [business.max.ru](https://business.max.ru/). |
| 54 | +- `ratelimiter` - Встроенный ограничитель частоты запросов. Он контролирует количество исходящих запросов в секунду (RPS), защищая бота от блокировки со стороны сервера за превышение лимитов. Рекомендуемое значение — не менее 25. |
| 55 | +- `timeout` - Максимальное время ожидания ответа от сервера (в секундах). Если сервер не ответит в течение этого времени, запрос будет завершен с ошибкой. Оптимальное значение — 30 секунд. |
| 56 | + |
| 57 | +**Как инициализировать клиент:** |
| 58 | + |
| 59 | +```typescript |
| 60 | +import { MaxBotAPI } from 'maxbot-api-client-ts'; |
| 61 | + |
| 62 | +const response = new MaxBotAPI({ |
| 63 | + base_url: "https://platform-api.max.ru", |
| 64 | + token: "YOUR_BOT_TOKEN", |
| 65 | + ratelimiter: 25, |
| 66 | + timeout: 30000 |
| 67 | +}); |
| 68 | +``` |
| 69 | + |
| 70 | +**Как получить информацию о боте:** |
| 71 | + |
| 72 | +Ссылка на пример: [getBot/main.ts](./examples/getBot/main.ts) |
| 73 | + |
| 74 | +```typescript |
| 75 | +const response = await bot.bots.getBot(); |
| 76 | +``` |
| 77 | + |
| 78 | +**Как отправить сообщение:** |
| 79 | + |
| 80 | +Ссылка на пример: [sendMessage/main.ts](./examples/sendMessage/main.ts) |
| 81 | + |
| 82 | +```typescript |
| 83 | +await bot.messages.sendMessage({ |
| 84 | + user_id: 123456789, |
| 85 | + text: "Hello world!", |
| 86 | +}); |
| 87 | +``` |
| 88 | + |
| 89 | +**Как легко отправить файл (по ссылке или локальный):** |
| 90 | + |
| 91 | +Метод `helpers.sendFile` сам определит тип источника и загрузит файл на сервер, если это необходимо. |
| 92 | + |
| 93 | +Ссылка на пример: [sendFile/main.ts](./examples/sendFile/main.ts) |
| 94 | + |
| 95 | +```typescript |
| 96 | +await bot.helpers.sendFile({ |
| 97 | + chat_id: 123456789, |
| 98 | + file_source: "./documents/report.pdf", |
| 99 | +}); |
| 100 | +``` |
| 101 | +```typescript |
| 102 | +await bot.helpers.sendFile({ |
| 103 | + chat_id: 123456789, |
| 104 | + file_source: "https://example.com/image.png", |
| 105 | +}); |
| 106 | +``` |
| 107 | + |
| 108 | +**Как получить входящее уведомление:** |
| 109 | + |
| 110 | +Ссылка на пример: [getUpdates/main.ts](./examples/getUpdates/main.ts) |
| 111 | + |
| 112 | +```typescript |
| 113 | +const response = await bot.subscriptions.getUpdates({ |
| 114 | + timeout: 25, |
| 115 | + marker: marker, |
| 116 | + types: [UpdateType.MessageCreated] |
| 117 | +}); |
| 118 | +``` |
| 119 | + |
| 120 | +----- |
| 121 | + |
| 122 | +## Список примеров |
| 123 | + |
| 124 | +| Описание | Ссылка на пример | |
| 125 | +|--------------------------------------|----------------------------------------------------------| |
| 126 | +| Как отправить сообщение | [sendMessage/main.ts](./examples/sendMessage/main.ts) | |
| 127 | +| Как получить информацию о боте | [getBot/main.ts](./examples/getBot/main.ts) | |
| 128 | +| Как отправить файл | [sendFile/main.ts](./examples/sendFile/main.ts) | |
| 129 | +| Как загрузить файл | [uploadFile/main.ts](./examples/uploadFile/main.ts) | |
| 130 | +| Как получить входящее уведомление | [getUpdates/main.ts](./examples/getUpdates/main.ts) | |
| 131 | + |
| 132 | +## Список всех методов библиотеки |
| 133 | + |
| 134 | +| Метод API | Описание | Ссылка на документацию MAX | Ссылка на документацию MAX BOT API | |
| 135 | +|-----------------|-------------------------|------------------------------------------------|----------------------------------------------| |
| 136 | +| `bots.getBot` | Получает информацию о боте | [getBot](https://dev.max.ru/docs-api/methods/GET/me) | [GetBot](https://green-api.com/max-bot-api/docs/api/bots/GetBot/) | |
| 137 | +| `bots.patchBot` | Изменяет информацию о боте | | [patchBot](https://green-api.com/max-bot-api/docs/api/bots/PatchBot/) | |
| 138 | +| `chats.getChats` | Возвращает список групповых чатов, в которых участвовал бот | [getChats](https://dev.max.ru/docs-api/methods/GET/chats) | [GetChats](https://green-api.com/max-bot-api/docs/api/chats/GetChats/) | |
| 139 | +| `chats.getChat` | Возвращает информацию о групповом чате по его ID | [getChat](https://dev.max.ru/docs-api/methods/GET/chats/-chatId-) | [GetChat](https://green-api.com/max-bot-api/docs/api/chats/GetChat/) | |
| 140 | +| `chats.editChat` | Позволяет редактировать информацию о групповом чате | [editChat](https://dev.max.ru/docs-api/methods/PATCH/chats/-chatId-) | [EditChat](https://green-api.com/max-bot-api/docs/api/chats/EditChat/) | |
| 141 | +| `chats.deleteChat` | Удаляет групповой чат для всех участников | [deleteChat](https://dev.max.ru/docs-api/methods/DELETE/chats/-chatId-) | [DeleteChat](https://green-api.com/max-bot-api/docs/api/chats/DeleteChat/) | |
| 142 | +| `chats.sendAction` | Позволяет отправлять следующие действия бота в групповой чат | [sendAction](https://dev.max.ru/docs-api/methods/POST/chats/-chatId-/actions) | [SendAction](https://green-api.com/max-bot-api/docs/api/chats/SendAction) | |
| 143 | +| `chats.getPinnedMessage` | Возвращает закрепленное сообщение в чате | [getPinnedMessage](https://dev.max.ru/docs-api/methods/GET/chats/-chatId-/pin) | [GetPinnedMessage](https://green-api.com/max-bot-api/docs/api/chats/GetPinnedMessage) | |
| 144 | +| `chats.pinMessage` | Закрепляет сообщение в групповом чате | [pinMessage](https://dev.max.ru/docs-api/methods/PUT/chats/-chatId-/pin) | [PinMessage](https://green-api.com/max-bot-api/docs/api/chats/PinMessage) | |
| 145 | +| `chats.unpinMessage` | Удаляет закрепленное сообщение в групповом чате | [unpinMessage](https://dev.max.ru/docs-api/methods/DELETE/chats/-chatId-/pin) | [UnpinMessage](https://green-api.com/max-bot-api/docs/api/chats/UnpinMessage) | |
| 146 | +| `chats.getChatMembership` | Возвращает членство бота в групповом чате | [getChatMembership](https://dev.max.ru/docs-api/methods/GET/chats/-chatId-/members/me) | [GetChatMembership](https://green-api.com/max-bot-api/docs/api/chats/GetChatMembership) | |
| 147 | +| `chats.leaveChat` | Удаляет бота из группового чата | [leaveChat](https://dev.max.ru/docs-api/methods/DELETE/chats/-chatId-/members/me) | [LeaveChat](https://green-api.com/max-bot-api/docs/api/chats/LeaveChat) | |
| 148 | +| `chats.getChatAdmins` | Возвращает список всех администраторов группового чата | [getChatAdmins](https://dev.max.ru/docs-api/methods/GET/chats/-chatId-/members/admins) | [GetChatAdmins](https://green-api.com/max-bot-api/docs/api/chats/GetChatAdmins) | |
| 149 | +| `chats.setChatAdmins` | Назначает участника группы администратором | [setChatAdmins](https://dev.max.ru/docs-api/methods/POST/chats/-chatId-/members/admins) | [SetChatAdmins](https://green-api.com/max-bot-api/docs/api/chats/SetChatAdmins) | |
| 150 | +| `chats.deleteAdmin` | Отменяет права администратора пользователя в групповом чате | [deleteAdmin](https://dev.max.ru/docs-api/methods/DELETE/chats/-chatId-/members/admins/-userId-) | [DeleteAdmin](https://green-api.com/max-bot-api/docs/api/chats/DeleteAdmin) | |
| 151 | +| `chats.getChatMembers` | Возвращает список участников группового чата | [getChatMembers](https://dev.max.ru/docs-api/methods/GET/chats/-chatId-/members) | [GetChatMembers](https://green-api.com/max-bot-api/docs/api/chats/GetChatMembers) | |
| 152 | +| `chats.addMembers` | Добавляет участников в групповой чат | [addMembers](https://dev.max.ru/docs-api/methods/POST/chats/-chatId-/members) | [AddMembers](https://green-api.com/max-bot-api/docs/api/chats/AddMembers) | |
| 153 | +| `chats.deleteMember` | Удаляет участника из группового чата | [deleteMember](https://dev.max.ru/docs-api/methods/DELETE/chats/-chatId-/members) | [DeleteMember](https://green-api.com/max-bot-api/docs/api/chats/DeleteMember) | |
| 154 | +| `subscriptions.getSubscriptions` | Возвращает список подписок на уведомления веб-хуков | [getSubscriptions](https://dev.max.ru/docs-api/methods/GET/subscriptions) | [GetSubscriptions](https://green-api.com/max-bot-api/docs/api/subscriptions/GetSubscriptions) | |
| 155 | +| `subscriptions.subscribe` | Настраивает доставку событий бота через веб-хук | [subscribe](https://dev.max.ru/docs-api/methods/POST/subscriptions) | [Subscribe](https://green-api.com/max-bot-api/docs/api/subscriptions/Subscribe.md) | |
| 156 | +| `subscriptions.unsubscribe` | Отменяет подписку бота на получение обновлений через веб-хук | [unsubscribe](https://dev.max.ru/docs-api/methods/DELETE/subscriptions) | [Unsubscribe](https://green-api.com/max-bot-api/docs/api/subscriptions/Unsubscribe) | |
| 157 | +| `subscriptions.getUpdates` | Получает входящие обновления | [getUpdates](https://dev.max.ru/docs-api/methods/GET/updates) | [GetUpdates](https://green-api.com/max-bot-api/docs/api/subscriptions/GetUpdates) | |
| 158 | +| `upload.uploadFile` | Загружает файл на серверы MAX для последующей передачи | [uploadFile](https://dev.max.ru/docs-api/methods/POST/uploads) | [UploadFile](https://green-api.com/max-bot-api/docs/upload/UploadFile) | |
| 159 | +| `helpers.sendFile` | Упрощает отправку файлов, автоматически определяя URL или путь | | [SendFile](https://green-api.com/max-bot-api/docs/helpers/SendFile) | |
| 160 | +| `messages.getMessages` | Возвращает информацию о сообщении или массив сообщений из чата | [getMessages](https://dev.max.ru/docs-api/methods/GET/messages) | [GetMessages](https://green-api.com/max-bot-api/docs/api/messages/GetMessages) | |
| 161 | +| `messages.sendMessage` | Отправляет текстовое или медиа-сообщение указанному пользователю или в чат | [sendMessage](https://dev.max.ru/docs-api/methods/POST/messages) | [SendMessage](https://green-api.com/max-bot-api/docs/api/messages/SendMessage) | |
| 162 | +| `messages.editMessage` | Редактирует текст или медиафайл ранее отправленного сообщения | [editMessage](https://dev.max.ru/docs-api/methods/PUT/messages) | [EditMessage](https://green-api.com/max-bot-api/docs/api/messages/EditMessage) | |
| 163 | +| `messages.deleteMessage` | Удаляет сообщение из чата | [deleteMessage](https://dev.max.ru/docs-api/methods/DELETE/messages) | [DeleteMessage](https://green-api.com/max-bot-api/docs/api/messages/DeleteMessage) | |
| 164 | +| `messages.getMessage` | Извлекает содержимое и метаданные конкретного сообщения по его ID | [getMessage](https://dev.max.ru/docs-api/methods/GET/messages/-messageId-) | [GetMessage](https://green-api.com/max-bot-api/docs/api/messages/GetMessage) | |
| 165 | +| `messages.getVideoInfo` | Возвращает подробную информацию о прикрепленном видео | [getVideoInfo](https://dev.max.ru/docs-api/methods/GET/videos/-videoToken-) | [GetVideoInfo](https://green-api.com/max-bot-api/docs/api/messages/GetVideoInfo) | |
| 166 | +| `messages.answerCallback` | Отправляет ответ после того, как пользователь нажмет кнопку | [answerCallback](https://dev.max.ru/docs-api/methods/POST/answers) | [AnswerCallback](https://green-api.com/max-bot-api/docs/api/messages/AnswerCallback )| |
| 167 | + |
| 168 | +----- |
| 169 | + |
| 170 | +## Лицензия |
| 171 | + |
| 172 | +[MIT](https://github.com/green-api/maxbot-api-client-ts/blob/master/LICENSE) |
0 commit comments