Skip to content

Commit 4437e23

Browse files
feat: initial commit
0 parents  commit 4437e23

66 files changed

Lines changed: 6164 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.npmignore

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
src/
2+
examples/
3+
tests/
4+
5+
tsconfig.json
6+
tsup.config.ts
7+
.npmignore
8+
.gitignore
9+
10+
node_modules/
11+
dist/*.tsbuildinfo
12+
*.log

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2026 GREEN-API
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 172 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,172 @@
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+
[![Support](https://img.shields.io/badge/support@green--api.com-D14836?style=for-the-badge&logo=gmail&logoColor=white)](mailto:support@green-api.com)
17+
[![Support](https://img.shields.io/badge/Telegram-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white)](https://t.me/greenapi_support_ru_bot)
18+
[![Support](https://img.shields.io/badge/WhatsApp-25D366?style=for-the-badge&logo=whatsapp&logoColor=white)](https://wa.me/77780739095)
19+
20+
## Руководства и новости
21+
22+
[![Guides](https://img.shields.io/badge/YouTube-%23FF0000.svg?style=for-the-badge&logo=YouTube&logoColor=white)](https://www.youtube.com/@green-api)
23+
[![News](https://img.shields.io/badge/Telegram-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white)](https://t.me/green_api)
24+
[![News](https://img.shields.io/badge/WhatsApp-25D366?style=for-the-badge&logo=whatsapp&logoColor=white)](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)

docs/bots/GetBot.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# GetBot
2+
3+
[dev.max.ru/docs-api/methods/GET/me](https://dev.max.ru/docs-api/methods/GET/me)
4+
5+
Метод предназначен для получения данных бота.
6+
7+
## Запрос {#request}
8+
9+
### Пример запроса {#request-example}
10+
11+
```typescript
12+
const response = await bot.bots.getBot();
13+
```
14+
15+
## Ответ {#response}
16+
17+
[**объект `BotInfo`**](../objects/User.md#botinfo-botinfo)
18+
19+
### Поля ответа {#response-parameters}
20+
21+
| Поле | Тип | Описание |
22+
|--------------------|-------------|-----------------------------------------------------------------------------------------------------------|
23+
| `user_id` | **number** | Идентификатор пользователя или бота |
24+
| `first_name` | **string** | Отображаемое имя пользователя или бота |
25+
| `last_name` | **string** | Отображаемая фамилия пользователя. Для ботов это поле не возвращается |
26+
| `username` | **string** | Никнейм бота или уникальное публичное имя пользователя. |
27+
| `is_bot` | **boolean** | `true`, если это бот |
28+
| <nobr>`last_activity_time`<nobr> | **number** | Время последней активности пользователя или бота в MAX (Unix-время в миллисекундах) |
29+
| `description` | **string** | Описание бота (до 16000 символов) |
30+
| `avatar_url` | **string** | URL аватара бота в уменьшенном размере |
31+
| `full_avatar_url` | **string** | URL аватара бота в полном размере |
32+
| `commands` | [**object**](../objects/User.md#поля-объекта-botcommand-botcommand) | Команды, поддерживаемые ботом (до 32 элементов) |
33+
34+
### Пример тела ответа {#response-example-body}
35+
36+
```json
37+
{
38+
"user_id": 123456789,
39+
"first_name": "GREEN-API",
40+
"username": "id1234567890_1_bot",
41+
"is_bot": true,
42+
"last_activity_time": 1773814559150,
43+
"description": "Test bot",
44+
"avatar_url": "https://i.oneme.ru/i?r=BTFjO43w8Yr1OSJ4tcurq5HiiuX5O9Fsy5lfWoOPCwG1Y9LtsPSxKRIDWbrHrJ8JfPo",
45+
"full_avatar_url": "https://i.oneme.ru/i?r=BTFjO43w8Yr1OSJ4tcurq5Hi0Hf8i3P1bQrH_cLXNMIZVtLtsPSxKRIDWbrHrJ8JfPo"
46+
}
47+
```

0 commit comments

Comments
 (0)