1С. Взаимодействие с http-сервисами
1С позволяет создать API-доступ, что даёт возможность взаимодействия бота с внутренней БД компании.
Ведение бизнеса связано с управлениям базами данных, которые могут быть созданы большим количеством способов. Одним из популярных и эффективных способов является использование платформы 1С, которая предоставляет глубокую интеграцию в бизнес-процессы и адаптирована под законодательство РФ.
Для настройки взаимодействия с базой данных 1С через HTTP необходимо на стороне платформы 1С опубликовать соответствующий веб-сервис.
Для этого проектируется логика API, которая предоставляет доступ к определенным данным через заранее определенные запросы. Как правило, такое взаимодействие строится по принципам REST-архитектуры, однако конкретная реализация API определяется на этапе проектирования. Способ доступа к данным (их структура, фильтрация, сортировка и т.д.) полностью определяется в момент проектирования API. Как и при развертывании любого API, создаются основные методы (эндпоинты) и настраиваются правила авторизации.
Вы можете познакомиться с подробным описанием настройки взаимодействия в записи нашего эфира: https://youtu.be/F922SV7RAGM.
Для настройки взаимодействия бота с базой данных Вам необходимо следующее:
URL метода. Дополнительно необходимо иметь информацию о том, какой тип запроса обработчик на стороне 1С поддерживает, какие параметры принимает и возвращает.
Необходимые заголовки.
Метод авторизации.
Авторизация может отсутствовать.
Какие запросы, параметры и заголовки поддерживаются методом,- задается при его проектировании. Если Вы можете влиять на процесс проектирования, то предпочтительней заранее заложить возможность работы с POST-запросами вместе (или вместо) с GET-запросом в методах, в том числе для получения данных, так как это упрощает передачу сложных параметров и больших объемов данных.
Настройка
Настройка действия
Рассмотрим для примера подключение к базе данных, содержащей определенные товары и информацию по статусу доставки. Задача состоит в том, чтобы по номеру заказа, который присылает в диалоге клиент, получить статус доставки.
Для взаимодействия бота с базой данных по API используется действие "Вебхук".
Перейдите на вкладку "Действия" и нажмите "Добавить".

Выберите действие "Вебхук".

Внесите необходимые для подключения данные.

Введите URL и выберите метод запроса.
Выбор метода POST откроет возможность добавления тела запроса, которое будет необходимо для передачи параметров.

На вкладке "Переменные действия" добавьте аргументы, соответствующие тем параметрам, которые необходимо передать в запрос, в данном примере это будет один параметр order_number.

Заполните необходимые заголовки и тело запроса. Данные для авторизации обычно передаются в заголовке Authorization, но это не единственный способ авторизации.

На вкладке "Условия срабатывания" задайте название функции и ее описание, таким образом бот будет знать, какое действие использовать при необходимости проверки статуса заказа.
Настройка авторизации
Если спроектирован доступ с авторизацией, то для доступа потребуется логин и пароль, которые будет необходимо передавать в самом запросе.
Авторизация Basic
Рассмотрим простой вариант авторизации Basic. Он предполагает передачу пары логина и пароля login:password, данные должны быть закодированы в Base64. Для кодирования можно использовать онлайн-сервисы, например https://www.base64decode.org/. В запросе формируется заголовок Authorization, в него добавляются закодированные данные после слова Basic, которое определяет схему авторизации.
Передача данных для авторизации в URL
Данные для авторизации могут быть переданы в URL.
Данный способ не рекомендуется, потому что данные передаются в открытом виде, что само по себе является небезопасным действием.
Логин и пароль должны быть URL-encoded, если содержат спецсимволы, например: @, :, /, #, ?, %.
username = [email protected] password = p@ss:word
URL-encoded: user%40example.com:p%40ss%3Aword
Для кодирования можно использовать онлайн-сервисы, такие как https://www.urlencoder.org/.
Работа с действием
В инструкции бота необходимо прописать вызов функции действия и передачу номера заказа в аргумент этой функции.
Бот выполнит запрос по API к Вашей базе данных и выведет клиенту информацию, которую получит от базы данных.
Формат и объем информации, который будет доступен при запросе определяется при проектировании API.
Last updated
Was this helpful?