Протокол работы 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": "new_chat",
    "chat": {
            "id": (string)
        },
    "messages": [{
          "kind": "visitor",
          "text": (string),
          "response":{
                     "button": (button)
                }
        }] 
}

Событие new_message:

{
    "event": "new_message",
    "chat": {
            "id": (string)
    },
    "kind": (string),
    "text": (string),
    "response":{
            "button": (button)
    }
}

Формат ответа

Успех: статус 200

Запрос с событием new_chat допускает пустое тело ответа, если в теле запроса нет поля messages. В случае когда поле messages включено в запрос, ответ будет таким же, как и ответ на запрос с событием new_messages.

Ответ на запрос с событием new_message имеет вид:

{
    "has_answer": (boolean)
    "messages": [{
        "kind": (string),
        "text": (string),
        "buttons": [(button), ...]
    },]
}

Параметры поля message:

Элемент типа Button

{
    "id": (string),
    "text": (string)
}

Пример ответа

{
    "has_answer": true,
    "messages": [
        {
            "kind": "operator",
            "text": "Мы работаем над вашей проблемой"
        },
        {
            "kind": "keyboard",
            "buttons": [
                [
                    {
                        "id": "call_agents",
                        "text": "Обратиться к операторам"
                    }
                ],
                [
                    {
                        "id": "call_agent",
                        "text": "Обратиться к оператору"
                    }
                ]
            ]
        }
    ]
}

Неудача: статус 400

Возможен ответ, уведомляющий о том, что запрос был не выполнен и произошла непредвиденная ошибка. Такие ответы выглядят следующим образом:

Пример 1:

{
    "error": "client_error",
    "details": "Channel not found."
}

Пример 2 :

{
    "error": "not_found"
}

Пример 3:

405: Method Not Allowed

Если в ответ на ваш запрос пришел такой ответ, то настоятельно рекомендуем проверить на опечатки Webhook URL и метод, с помощью которого был отправлен данный запрос.

Last updated