Универсальный коннектор Chat API
Last updated
Last updated
Chat API — универсальный канал с публичным API, предназначенный для подключения Агента к Конечный каналам, для которых нет встроенного в Платформа Коннектор.Организовать такой универсальный канал можно с помощью Коннектора Chat API
Агенту необходимо создать и настроить Канал Проекта с коннектором Chat API
Кликните по кнопке настроек Агента.
Нажмите кнопку Add channel.
Откроется панель выбора Конечный канал.
Выберите Chat API.
Откроется панель создания Канал Проекта.
По необходимости пропишите заголовок для данного Канал Проекта в поле названия с плейсхолдером New channel.
Пропишите адрес вашего сервера в поле Channel webhook URL в виде https://{server_adress}, где {server_adress} — адрес Платформа.
Важно: к указанному адресу будет подставлен метод при отправке Агентом ответа на запрос из канала/сервера клиента: https://your_company.com/send_message.
По необходимости установите токен в поле Channel token.
Важно: токен необходимо указывать в случае, если авторизация на стороне клиента осуществляется через header. Подробнее описано в Авторизация на стороне клиента.
Скопируйте ссылку на вебхук канала агента (поле Chatbot webhook URL), нажав кнопку Copy this webhook.
Для сохранения Канал Проекта без его активации, нажмите кнопку CREATE.
Для сохранения и активации Канал Проекта, нажмите кнопку CREATE & ACTIVATE.
Канал Проекта будет сохранен и активирован, если:
Агент обучен;
токен в поле Channel token уникален (нет ли активных Канал Проекта того же типа с тем же значением в поле);
будет доступен адрес Канал Проекта;
удастся зарегистрировать вебхук канала.
Канал Проекта будет сохранен, но не активирован, если одно или больше условий не будут выполнены.
Для отмены создания Канал Проекта нажмите кнопку CANCEL.
Чтобы отредактировать значение в любом поле, кликните по полю и впишите новое значение.
Изменения будут применены, если:
Агент обучен;
токен в поле Channel token уникален (нет ли активных Канал Проекта того же типа с тем же значением в поле);
будет доступен адрес Канал Проекта;
удастся зарегистрировать вебхук канала.
Изменения не будут применены, если одно или больше условий не будут выполнены.
Изменения будут применены и Канал Проекта будет активирован, если:
Агент обучен;
токен в поле Channel token уникален (нет ли активных Канал Проекта того же типа с тем же значением в поле);
будет доступен адрес Канал Проекта;
удастся зарегистрировать вебхук канала.
Изменения будут применены, но Канал Проекта не будет активирован, если одно или больше условий не будут выполнены.
Поддерживаемый протокол и метод:HTTPS, POST c content-type JSONEndpoint для получения запросов каналом агента:Запросы отправляются на Chatbot Webhook URL, указанный при подключении Канал Проекта.Формат endpoint (Chatbot Webhook URL):
Платформа развернута в облаке
https://admin.chatme.ai/connector/chatapi/chatapi_message/{token}/bot_api_webhook
Платформа развернута в контуре клиента
https://{server_adress}/connector/chatapi/chatapi_message/{token}/bot_api_webhookГде:
{server_adress} — адрес Платформа,
{token} — токен авторизации.
Вид тела запроса:
Важно: структура объекта Message зависит от типа передаваемого сообщения (текст, файл, нажатие на кнопку) и может состоять из разных видов данных и полей.
event — тип события, которое Бот обрабатывает по определенной логике.Поддерживаемые типы событий:
new_message — cобытие, которое передается Агенту каналом/сервером клиента и содержит сообщение от Собеседника.
chat_id — идентификатор чата/диалога/собеседника на сервере клиента (в приложении для общения - конечном канале), на основании которого создается Чат с данным Собеседником в Платформе.
Visitor — объект, содержащий информацию о Собеседнике.Вид Visitor:
Пример Visitor:
Message — объект, содержащий информацию, передаваемую в Агента для обработки.
Ниже представлены примеры содержимого объекта Message для различных типов сообщений.
Текст
Вид Message:
Пример Message:
Файл
Вид Message:
Пример Message:
При kind == attachment Публичный API "Chat API" получает данные о файле и преобразует их в текстовое сообщение для Агента в формате: file:{file_type}|{file_id}|{file_url} . Сам файл Агент не выкачивает.
Нажатие на кнопку
Вид Message:
Пример Message:
Объект Service data
Service data — любой объект, содержащий кастомную информацию, отправленную в Агента для обработки, например, для использования этой информации в Диалоге. Необязательный объект.
HTTP status: 200 OKBODY:
Канал Агента неактивен или присутствует ошибка в токене Chatbot Webhook в URL
HTTP status: 400 Bad RequestBODY:
Отсутствует обязательный параметр в теле запроса
HTTP status: 400 Bad Request
Указан некорректный URL
HTTP status: 404: Not Found
Некорректный JSON тела запроса: невалидный параметр event или kind
HTTP status: 200 OK
Ниже изложены форматы, примеры и описания запросов от Публичного API "Chat API" на сервер клиента.
Запросы отправляются на URL-адрес клиентского сервера, прописанного в поле Channel Webhook: URL при подключении Канал Проекта.Формат URL-адреса: https://{server_address}/{method}, где:
{server_adress} — адрес Платформа,
{method} — один из методов Публичного API "Chat API".
Методы Публичного API "Chat API":
/send_message — отправка сообщения Агентом Собеседнику.
/close_chat — отправка события для закрытия Диалога.
Авторизация может осуществляться через:
Уникальный URL
Нужно указать URL, содержащий токен, в поле Channel webhook: URL при подключении Канал Проекта. При этом поле Channel webhook: Token заполнять не нужно.
Header
Нужно указать токен авторизации в поле Channel webhook: Token при подключении Канал Проекта. Токен из поля Channel webhook: Token по умолчанию будет подставлен в header.Формат авторизации с помощью токена:Authorization: Token {token}Пример авторизации:Authorization: Token ac650a3c369a4b9599ad52ab71943712
Method: /send_messageТип запроса: POSTContent-type: application/jsonQuery-string параметры: не нужныВид URL при отправке Агентом сообщения посетителю:
где {server_adress} — адрес Платформа.Вид тела запроса:
Важно: структура объекта Message зависит от типа передаваемого сообщения (текст, файл, кнопки).
chat_id — идентификатор чата/диалога/собеседника на сервере клиента (в приложении для общения - конечном канале), на основании которого создается Чат с данным Собеседником в Платформе.
Message — объект, содержащий информацию, передаваемую в Агента для обработки.
Ниже представлены примеры содержимого объекта Message для различных типов сообщений.
Текст
Вид Message:
Пример Message:
Файл
Вид Message:
Пример Message:
Важно: отправка файлов происходит из слота .
Сообщение с кнопками
Вид Message:
Пример Message:
Важно: идентификатор кнопки может содержать только латинские буквы, цифры, символы дефиса и нижнего подчёркивания, и должен быть не более 24 символов в длину.
Перевод на оператора не поддерживается с помощью Слота . Для выполнения перевода на оператора используется Внешний запрос с указанными характеристиками.
Важно: Публичный API "Chat API" имеет ограниченный набор возможностей. Если необходимо, чтобы Агент использовал другие методы со стороны API клиента, то работу с этими методами можно настроить внутри Агента при помощи конструктора запросов (Вкладка внешних запросов — External Requests).
Важно: Закрытие Диалога производится с помощью Слота Change Chat Mode. Диалог автоматически закрывается на стороне Платформа.
Метод: /close_chatТип запроса: POSTContent-type: application/jsonQuery-string параметры: не нужныURL: https://{server_address}/close_chatВид тела запроса:
Взаимодействие с сервером клиента происходит через Публичный API "Chat API" согласно настройкам аккаунта в сервисе клиента.
На усмотрение канала
Нет
Не поддерживается перевод на оператора через слот Change Chat Mode в текущей реализации функционала Платформа. Перевод на оператора можно сделать “вручную” через External Request.
Для редактирования Канал Проекта, необходимо кликнуть по его иконке на карточке Агента.
Чтобы применить изменения к активированному Канал Проекта, нажмите кнопку APPLY.
Чтобы деактивировать Канал Проекта, нажмите кнопку DEACTIVATE.
Чтобы применить изменения к деактивированному Канал Проекта, нажмите кнопку SAVE.
Чтобы применить изменения и активировать Канал Проекта, нажмите кнопку SAVE & ACTIVATE.
Чтобы отменить внесение изменений, нажмите кнопку CANCEL.
Чтобы удалить Канал Проекта, нажмите кнопку DELETE.