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

1C MAX BOT API Library#

1C MAX BOT API Library — внешняя обработка для работы с MAX для партнёров из 1С:Предприятие 8.3.10+. Этот проект позволяет использовать всем методы MAX BOT API.

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

Ограничения API#

  • Максимум 30 запросов в секунду к platform-api.max.ru
  • Текст сообщения — до 4000 символов
  • Клавиатура — до 210 кнопок (30 рядов × 7 кнопок)
  • Описание бота — до 16000 символов

Установка#

Убедитесь, что у вас установлена версия 1C не ниже 8.3.10

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

  1. Скопируйте папку maxbotapi в конфигурацию или загрузите готовый файл bin/greenapi_maxbotapi.epf как внешнюю обработку.

  2. Задайте реквизит AccessToken — Уникальный секретный ключ авторизации (API-ключ) вашего бота. Получить его можно в личном кабинете после регистрации или создании бота на платформе business.max.ru. Читайте перед началом работы, чтобы получить токен.

Для конфигураций на базе БСП обработка автоматически регистрируется через СведенияОВнешнейОбработке() с идентификатором GREENAPIMAXBOTAPI.

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

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

API = ВнешниеОбработки.Создать("GREENAPIMaxBotAPI");
API.AccessToken = "ВАШ_ТОКЕН_БОТА";

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

ИнфоБота = API.ПолучитьИнфоБота();
Сообщить("Имя бота: " + ИнфоБота.first_name);

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

Ответ = API.ОтправитьСообщение("Привет от GREEN-API!", 12345);

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

Ответ = API.ОтправитьСообщение("Личное сообщение от GREEN-API",, 67890);

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

Ответ = API.ОтправитьСообщение("**Жирный** и _курсив_", 12345,,,,, "markdown");

Отправка сообщения с inline-клавиатурой:

Кнопка = Новый Структура;
Кнопка.Вставить("type", "callback");
Кнопка.Вставить("text", "Нажми меня!");
Кнопка.Вставить("payload", "button1");

Ряд = Новый Массив;
Ряд.Добавить(Кнопка);

Кнопки = Новый Массив;
Кнопки.Добавить(Ряд);

Клавиатура = Новый Структура;
Клавиатура.Вставить("type", "inline_keyboard");
КлавиатураPayload = Новый Структура;
КлавиатураPayload.Вставить("buttons", Кнопки);
Клавиатура.Вставить("payload", КлавиатураPayload);

Вложения = Новый Массив;
Вложения.Добавить(Клавиатура);

Ответ = API.ОтправитьСообщение("Выберите действие:", 12345,,Вложения);

Long Polling — получение обновлений:

Маркер = Неопределено;
Пока Истина Цикл
    Обновления = API.ПолучитьОбновленияLP(100, 30, Маркер);
    Маркер = Обновления.marker;
    Для каждого Событие Из Обновления.updates Цикл
        // Обработка события
        Сообщить("Тип: " + Событие.update_type);
    КонецЦикла;
КонецЦикла;

Загрузка файла:

ИнфоЗагрузки = API.ПолучитьURLЗагрузки("image");
Ответ = API.ЗагрузитьФайл(ИнфоЗагрузки.url, "C:\photo.jpg");
// Ответ  Соответствие с вложенной структурой:
// {"photos": {"<хеш>": {"token": "<токен_вложения>"}}}

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

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

Метод Описание
Бот
ПолучитьИнфоБота() Информация о боте (user_id, name, username и др.)
Чаты
ПолучитьСписокЧатов(Количество, Маркер) Получить список групповых чатов
ПолучитьИнфоЧата(ИдЧата) Информация о групповом чате
ИзменитьЧат(ИдЧата, Параметры) Редактировать информацию о групповом чате (title, icon, pin)
УдалитьЧат(ИдЧата) Удалить групповой чат
ОтправитьДействиеВЧат(ИдЧата, Действие) Отправка в групповой чат действий бота (typing_on, mark_seen и др.)
ПолучитьЗакрепленноеСообщение(ИдЧата) Получить закрепленное сообщение в групповом чате
ЗакрепитьСообщение(ИдЧата, ИдСообщения, Уведомлять) Закрепить сообщение в групповом чате
ОткрепитьСообщение(ИдЧата) Удалить закрепленное сообщение в чате
ПолучитьЧленствоБота(ИдЧата) Получить информации о статусе бота в групповом чате
УдалитьБотаИзЧата(ИдЧата) Удалить бота из участников группового чата
ПолучитьАдминовЧата(ИдЧата) Получить список всех администраторов группового чата
НазначитьАдмина(ИдЧата, ИдПользователя) Назначить или обновить права администраторов в групповом чате
СнятьАдмина(ИдЧата, ИдПользователя) Отозвать права администратора в групповом чате
ПолучитьУчастниковЧата(ИдЧата, Количество, Маркер) Получить список участников группового чата
ДобавитьУчастниковВЧат(ИдЧата, ИдПользователей) Добавить участника в групповой чат
УдалитьУчастникаИзЧата(ИдЧата, ИдПользователя, Блок) Удалить участника из группового чата
Сообщения
ОтправитьСообщение(Текст, ИдЧата, ИдПользователя, Вложения, Ссылка, Уведомлять, Формат, ОтключитьПревью) Отправить сообщение
ПолучитьСообщения(ИдЧата, ИдСообщений, ДатаС, ДатаПо, Количество) Получить сообщения
ПолучитьСообщениеПоИд(ИдСообщения) Получить сообщение по ID
РедактироватьСообщение(ИдСообщения, Текст, Вложения, Ссылка, Уведомлять, Формат) Редактировать сообщение
УдалитьСообщение(ИдСообщения) Удалить сообщение
Webhooks (Подписки)
ПолучитьПодписки() Список подписок
Подписаться(URLВебхука, ТипыОбновлений, Секрет) Подписка на обновления
Отписаться(URLВебхука) Отписка от обновлений
Long Polling (Обновления)
ПолучитьОбновленияLP(Лимит, Таймаут, Маркер, ТипыОбновлений) Получение обновлений
Загрузка файлов
ПолучитьURLЗагрузки(ТипФайла) Загружает файл на сервер MAX. URL для загрузки (image/video/audio/file)
ЗагрузитьФайл(URLЗагрузки, ПутьКФайлу) Универсальный метод для упрощенной отправки файлов. Отправить файл на сервер
Видео
ПолучитьИнфоВидео(ТокенВидео) Метод предназначен для получения статуса обработки и метаданных загруженного видео.
Callback-ответы
ОтветитьНаCallback(ИдCallback, Сообщение, Уведомление) Метод предназначен для подтверждения нажатия инлайн-кнопки пользователем (убирает индикатор загрузки на клиенте).

Интерактивная форма тестирования#

Обработка включает встроенную форму для тестирования всех методов API без написания кода:

  • Авторизация — при вводе токена автоматически загружается информация о боте и аватар
  • Чаты — интерфейс для работы со всеми методами чатов, включая управление участниками и администраторами
  • Сообщения — отправка с поддержкой вложений (таблица type/url/token), форматирования (Markdown/HTML) и ответов на сообщения
  • Медиа — загрузка файлов через диалог выбора, информация о видео
  • Подписки — управление вебхуками с выбором типов событий из списка
  • ОбновленияLong Polling с настройками лимита, таймаута и фильтрации по типам событий
  • Ссылки на документацию — каждый метод в форме содержит гиперссылку на соответствующую страницу документации MAX API
  • JSON-вывод — все ответы API отображаются в форматированном JSON

Лицензия#

MIT