Протокол работы Chatme.ai Public API 1.0
Описание
Chatme.ai Public API 1.0 интегрируется по протоколу HTTPS через webhook. Формат взаимодействия включает в себя форматы запросов и ответов, которыми платформа обменивается со сценариями чат-ботов.
Получив внешний запрос, платформа chatme.ai перенаправляет текст сообщения сценарию чат-бота. Также текстом могут быть подсказки (кнопки), которые предоставляет чат-бот.
Формат запроса
Платформа chatme.ai принимает POST-запрос в формате JSON на webhook URL https://admin.chatme.ai/connector/webim/webim_message/{channel_token}/bot_api_webhook, где channel_token — токен чат-бота, сгенерированного на платформе.
Событие new_chat:
Название параметра | Тип | Описание |
event | String | Событие new_chat срабатывает в момент назначения нового чата на бота. |
chat.id | String | Уникальный идентификатор чата |
messages | Array | Массив из сообщений Собеседника, которые были отправлены в чат до появления Собеседника в чате |
messages.kind | String | visitor или keyboard_response |
messages.text | String | Текст сообщения Собеседника. Присутствует, если kind == visitor. |
message.response | Object | Описывает ответ Собеседника на keyboard сообщение. Присутствует, если kind == keyboard_response. |
message.response.button | Button | Описывает нажатую кнопку. Ниже будет приведен пример элемента типа Button. |
Событие new_message:
Название параметра | Тип | Описание |
event | String | Событие new_message инициируется в момент прихода нового сообщения от Собеседника в чат (после нажатия Собеседником кнопки), назначенный на бота. |
chat.id | String | Уникальный идентификатор чата |
kind | String | visitor или keyboard_response |
text | String | Текст сообщения Собеседника. Присутствует, если kind == visitor. |
response | Object | Описывает ответ Собеседника на keyboard сообщение. Присутствует, если kind == keyboard_response. |
response.button | Button | Описывает нажатую кнопку. Ниже будет приведен пример элемента типа Button. |
Формат ответа
Успех: статус 200
Запрос с событием new_chat допускает пустое тело ответа, если в теле запроса нет поля messages. В случае когда поле messages включено в запрос, ответ будет таким же, как и ответ на запрос с событием new_messages.
Ответ на запрос с событием new_message имеет вид:
Название параметра | Тип | Описание |
has_answer | Boolean |
|
messages | Array | Массив из сообщений. Присутствует, если has_answer == true. |
Параметры поля message:
Название параметра | Тип | Описание |
kind | String | operator или keyboard. Поле обязательно. |
text | String | Сообщение от бота. Поле присутствует в элементе массива message, если kind == operator. |
buttons | Array of Buttons | Массив массивов кнопок вида [[b1], [b2], ...]. Поле присутствует, если kind == keyboard. |
Элемент типа Button
Название параметра | Тип | Описание |
id | String | Уникальный идентификатор кнопки |
text | String | Текст кнопки |
Пример ответа
Неудача: статус 400
Возможен ответ, уведомляющий о том, что запрос был не выполнен и произошла непредвиденная ошибка. Такие ответы выглядят следующим образом:
Пример 1:
Пример 2 :
Пример 3:
405: Method Not Allowed
Если в ответ на ваш запрос пришел такой ответ, то настоятельно рекомендуем проверить на опечатки Webhook URL и метод, с помощью которого был отправлен данный запрос.
Last updated