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
Установите библиотеку:
-
Скопируйте папку maxbotapi в конфигурацию или загрузите готовый файл bin/greenapi_maxbotapi.epf как внешнюю обработку.
-
Задайте реквизит
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 APIJSON-вывод— все ответы API отображаются в форматированномJSON
Лицензия#
MIT