Канал Пользовательский канал

Средний

Настройка Endpoint и добавление канала API

Для создания канала API в BPMSoft:

  1. Перейдите в раздел «Настройка чатов BPMSoft OCC» в «Дизайнере системы».
  2. Нажмите Плюс на детали «Каналы» страницы раздела «Настройка чатов BPMSoft OCC», чтобы добавить новый канал.

Рисунок 1 — Деталь «Каналы»

Рисунок 1 — Деталь «Каналы»

  1. В открывшемся окне выберите «Пользовательский канал» и заполните поля.

Рисунок 2 — Окно «Добавление канала API»

Рисунок 2 — Окно «Добавление канала API»

Для добавления этого канала введите адрес Пользовательского канала в формате «адрес_custom_channel/Home/InputJSON» (Например, «https://devcustom-customchannel.ru/Home/InputJSON»), который будет принимать ответы операторов и ботов из BPMSoft. После добавлении канала происходит отправка тестового hook на адрес, указанный в форме добавления. Используйте полученный id в запросах к API.

Формат тестового Hook

Таблица 1 — Описание полей тестового Hook

Name Description Data type Comments
id Идентификатор канала в BPMSoft Guid

В базе данных коннектора появится запись добавленного Custom Channel. Выполните скрипт для просмотра AppId и ChannelId (Id из таблицы Channel) из таблицы:

select
*
from Channel as c
where c."Type" = 'Custom';
996902C5-CA62-4C8D-8CBE-C7AED80C2893 - AppId из SQL dev3 [BPMSoftOCC-dev-connector].[dbo].[Channel]
EB996270-D3DE-4928-BEB3-5B8EFAC213B2 - Id из SQL dev3 [BPMSoftOCC-file-share].[dbo].[Channel]

Рисунок 3 — Результат выполнения скрипта

Рисунок 3 — Результат выполнения скрипта

На среде, где настроен Custom channel (например, «https://devcustom-customchannel.ru/»), необходимо поменять в C:\папка_приложения_CustomChannel\appsettings.json строку подключения к коннектору:

connectorUrl(адрес_коннектора)/api/v1.0/sendmessage/AppId/channelId

"DefaultURI": "https://devcustom-customchannel.ru/api/v1.0/sendmessage/996902C5-CA62-4C8D-8CBE-C7AED80C2893/EB99627...;,

Рисунок 4 — Замена строки

Рисунок 4 — Замена строки

После завершения настройки прикрепите к добавленному каналу оператора и нажмите кнопку «Актуализировать». Подробнее: Привязка оператора к каналу

Рисунок 5 — Добавление оператора

Рисунок 5 — Добавление оператора

Отправка сообщения

Для того чтобы сервис мог отправлять сообщения в BPMSoft, необходимо наделить сервис функцией отправки этих сообщений в JSON-формате.

В качестве хоста указывается адрес коннектора, который используется при общении из BPMSoft. Это значение находится в системной настройке BPMSoftOCCOperatoHost.

Параметр type определяет тип отправляемого сообщения: text, image, file, location. Если type == 'text', то поле text должно быть заполнено. Аналогично и для остальных типов.

SendMessage

Таблица 2 — Поля

Описание Интерфейс для отправки сообщения в BPMSoft
Путь {HOST}/api/v1.0/sendmessage/{Appid}/{ChannelId}
Тип метода POST

AppId — секретный ключ.
ChannelId — guid, пришедший в тестовом hook.

Спецификация запроса

Таблица 3 — Описание полей

Name Description Data type Required Comments
sender Отправитель Sender yes
message Сообщение Messagee yes
clientId Идентификатор пользователя string no

Структура класса Sender

Таблица 4 — Структура класса Sender

Name Description Data type Required Comments
id Идентификатор пользователя (сеанса) string yes
name Имя пользователя string yes
avatar Ссылка на аватар пользователя string no

Структура класса Message

Таблица 5 — Структура класса Message

Name Description Data type Required Comments
type Тип отправляемого сообщения string yes Возможные значения: text, image, file, location
text Текст сообщения string
attachment Приложение Attachment

Структура класса Attachment

Таблица 6 — Структура класса Attachment

Name Description Data type Required Comments
image Ссылка на изображение string
location Местоположение Location
file Файл File

Структура класса Location

Таблица 7 — Структура класса Location

Name Description Data type Required Comments
lat Широта string
lng Долгота string

Структура класса File

Таблица 8 — Структура класса File

Name Description Data type Required Comments
name Название файла string
size Размер файла long В байтах. Пока не используется
url Ссылка на файл string
Пример отправленного в BPMSoft текстового сообщения
{
 "sender":
{
  "id": "4",
    "name": "Test User",
  "avatar":
"{+}https://media.fox9.com/media.fox9.com/photo/2018/03/02/5%20P%20MISSING%20DOG%20FOUND%20DEAD_00.00.06.04_1520042792006.png_5029487_ver1.0_640_360.jpg+"
          },
 "message":
{
                     "type": "text",
                     "text": "Test text"
          }
}
Если запрос прошел успешно, то возвращается 200 ОК с телом, например,
{
    "ok": true
}
Если прошел с ошибками, то в теле ответа будет указан текст ошибки, например,
{
    "ok": false,
    "error": "hook.message.attachment.image can't be empty"
}

Получение сообщений

Для получения сообщений из BPMSoft необходимо реализовать сервис, принимающий POST запросы. В теле POST запроса — JSON с информацией о полученном сообщении.

На данный момент поддерживается несколько типов сообщений: с кнопками, без кнопок, файл, картинка, местоположение. Тип указан в параметре type. В случае, если тип сообщения — кнопочное, оно может также содержать текст, который идет перед кнопками.

Спецификация запроса

Таблица 9 — Спецификация запроса

Name Description Data type Comments
channel_id Идентификатор канала в BPMSoft string
receiver_id Идентификатор пользователя, который получает сообщение в канале string
type Тип присылаемого сообщения string text, buttons, file, image, location, operator_info
content Присланные кнопки Content

Структура класса Content

Таблица 10 — Спецификация класса Content

Name Description Data type Comments
text Текст, идущий перед кнопками string

Если тип сообщения файл или картинка, то ссылка на файл или картинку.

Если тип сообщения местоположение, то на объект location (Таблица 11)

buttons Тексты кнопок сообщений string[] Массив кнопок. Сообщение может содержать несколько кнопок
operatorInfo Информация об операторе OperatorInfo Если тип запроса operator_info

Структура класса Location

Таблица 11 — Спецификация класса Location

Name Description Data type Comments
lat Latitude string
lng Longtitude string

Структура класса OperatorInfo

Таблица 12 — Спецификация класса OperatorInfo

Name Description Data type Comments
OperatorPhotoLink Ссылка на фото оператора string
OperatorName Имя оператора string

Для корректной работы необходимо возвращать 200 ОК на каждый запрос к вашему Endpoint.

В случае если в настройках канала проставлена галочка «Отправлять информацию об операторе», то при смене оператора будет приходить сообщение с типом operator_info.

Пример принимаемого json сообщения с типом text
{          "channel_id" : "28528776-3130-4C66-E811-08D55CEAB346",
          "receiver_id" : "123",
          "type" : "text",
          "content" :
           {
               "text" : "test",
               "buttons" : []
          },
          "operatorInfo": ""
}

Рекомендуем изучить

Привязка оператора к каналу

Материал был полезен для вас?
Приглашаем на вебинар 26 ноября

BPMSoft больше, чем CRM С участием МодульКасса, Доброфлот, АвтоТрейд Москва 07:00-08:00 Новосибирск 11:00-12:00 Иркутск 12:00-13:00 Владивосток 14:00-15:00

Топ российских low-code платформ

Подробный обзор 30+ российских решений — в исследовании фонда «Сколково» и аналитического центра TAdviser. Узнайте, кто оказался в лидерах.

Оставить заявку

Оставьте свои контакты и наш менеджер свяжется с Вами в ближайшее время

Демонстрационная версия BPMSoft

Заполните заявку для получения бесплатного доступа к демонстрационному стенду на 14 дней

Заказать презентацию

Наш менеджер свяжется с Вами в ближайшее время

Рассчитать стоимость

Стоимость лицензии BPMSoft от 13 480 руб. Для корректного расчета заполните форму

Задать вопрос
Присоединяйтесь к партнерской сети BPMSoft

Оставьте свои контакты и наш менеджер свяжется с Вами в ближайшее время

Тип партнерства
Управление полным жизненным циклом клиента: от генерации лидов и продаж до внедрения, поддержки и продления подписки.
Разработка собственного Приложения – производного программного обеспечения, созданного на платформе BPMSoft (Базовое ПО).
Есть вопросы?

Не нашли для себя подходящую вакансию, или остались вопросы?

Есть вопросы?

Не нашли для себя подходящую вакансию, или остались вопросы?

Стать Вузом-партнером

Оставьте свои контакты и наш менеджер свяжется с Вами в ближайшее время.

Заявка на консультацию
Спасибо!
Ваша заявка принята.
Наш сотрудник свяжется с вами в течение 1-2 рабочих дней.
Внимание!
Обнаружена ошибка.
Вы подписаны на новости BPMSoft
Пожалуйста, подтвердите свой электронный адрес, пройдя по ссылке в письме.
Telegram Подписаться
Уважаемые клиенты! Предупреждаем о случаях недобросовестной конкуренции и мошенничестве в сети Интернет.
Подробнее