Перейти к содержанию

TS MAX BOT API Library#

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

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

Установка#

Убедитесь, что у вас установлена версия Node.js не ниже 22.18

node -v

npm -v

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

npm install @green-api/maxbot-api-client-ts

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

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

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

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

import { MaxBotAPI } from '@green-api/maxbot-api-client-ts';

const response = new MaxBotAPI({
    base_url: "https://platform-api.max.ru",
    token: "YOUR_BOT_TOKEN",
    ratelimiter: 25,
    timeout: 30000
});

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

const response = await bot.bots.getBot();

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

await bot.messages.sendMessage({
    user_id: 123456789,
    text: "Hello world!",
});

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

Метод helpers.sendFile сам определит тип источника и загрузит файл на сервер, если это необходимо.

await bot.helpers.sendFile({
    chat_id: 123456789,
    file_source: "./documents/report.pdf",
});
await bot.helpers.sendFile({
    chat_id: 123456789,
    file_source: "https://example.com/image.png",
});

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

const response = await bot.subscriptions.getUpdates({
    timeout: 25,
    marker: marker,
    types: [UpdateType.MessageCreated]
});

Документация по методам сервиса#