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

Для тестирования работы вебхука можно использовать этот сервис

Для подключения персонального канала, вы должны указать вебхук, на который Савви будет отправлять сообщения. Он будет делать это в следующем виде:

Запрос

Ваш вебхук должен возвращать статус код в диапазоне 200-299 и отвечать в течение 20 секунд. В противном случае запрос считается ошибочным, а сообщения — недоставленными (такие сообщения Савви не видит).

Ваш вебхук будет получать запросы с разных IP-адресов. Для проверки и авторизации используйте настройку «Секрет вебхука».

Мы сделаем POST запрос на ваш вебхук, передав туда тело следующего вида:

{
  "event_type": "new_messages",
  "new_messages": [
    {
      "type": "image",
      "message_sender": "ai",
      "file": {
        "name": "image.png",
        "url": "<прямая ссылка на изображение>",
        "size_bytes": 10240,
        "mime_type": "image/png"
      }
    },
    {
      "type": "text",
      "message_sender": "ai",
      "text": "Привет! Как я могу вам помочь?"
    }
  ]
}

Если при подключении персонального канала, вы указали секрет вебхука, то мы передадим его в заголовке Authorization в следующем виде:

Bearer <ваш секрет>

Объект в запросе

Поле
Тип
Описание

event_type

строка (new_messages или test_request)

Тип события. На данный момент реализовано только событие для новых сообщений и тестовый запрос, но в будущем можем добавить и другие.

В зависимости от этого параметра набор полей может измениться

test_request - событие который мы пришлем на ваш вебхук при нажатии на кнопку проверки в ЛК Савви

Рекомендуем проверять данный параметр и игнорировать запрос, если event_type <> "new_messages"

new_messages

массив объектов Message

Новые сообщения. Присутствует только если тип события - new_messages

chat_id

строка

Айди чата. Айди чата, который вы указывали при отправке запроса на наш АПИ. Нужен, чтобы вы могли в своей системе идентефицировать, в какой чат добавить ответ. Присутствует только если тип события - new_messages

Объект Message

Поле
Тип
Описание

type

строка (text, image, audio, document)

Тип сообщения. От этого параметра зависит набор полей.

message_sender

строка (ai или employee)

Отправитель сообщения. Присутствует во всех типах, определяет кто прислал сообщение (бот или сотрудник через личный кабинет Савви)

text

строка

Текст сообщения. Присутствует только, если тип сообщения - text

file

объект MessageFile

Приложенный файл. Присутствует только, если тип сообщения - image, audio или document

Объект MessageFile

Поле
Тип
Описание

url

строка

Прямая ссылка для загрузки файла.

Файл будет расположен на нашем сервере.

name

строка

Имя файла.

size_bytes

целое число ∈ [0, +∞)

Размер файла в байтах.

mime_type

строка ^[a-zA-Z0-9]+/[a-zA-Z0-9-.+]+$

Mime-тип файла.

Савви может отправить файлы следующих типов:

  • Для изображений: image/png, image/jpeg, image/gif

  • Для аудио: audio/ogg, audio/mpeg, audio/wav, audio/x-wav, audio/webm, audio/mp4, audio/m4a, audio/x-m4a

  • Для документов: любые, включая вышеперечисленные

Last updated

Was this helpful?