- Онлайн-консультант Webim
- -
- База знаний
- -
- Боты
- -
- Подключение внешних роботов через External Bot API
- -
- External Bot API 2.0
-
-
-
- 01. Обнаружение нового посетителя, ожидающего ответа
- 02. Выбор посетителя сайта из списка и начало диалога
- 03. Набор ответа посетителю, выбор шаблона
- 04. Запрос контактной информации у посетителя
- 05. Отправка файла посетителю
- 06. Кобраузинг
- 07. «Телепортация» пользователей
- 08. Переадресация диалога другому оператору
- 09. Отправка переписки на адрес электронной почты оператора
- 10. Назначение категории посетителю
- 11. Блокировка посетителя
- 12. Вставка гиперссылки в сообщение
- 13. Добавление заметок
- 14. Проверка орфографии
- Agent`s Handbook
- Как включить оповещения в Google Chrome
- Очереди в РМО
- Работа с офлайн-обращениями на РМО
-
- Алгоритмы назначения чатов
- Видимость диалогов
- Вход в систему
- Генератор лидов и автоприглашения
- График работы
- Добавление кнопки Webim в E-mail
- Закрытие диалогов
- Логотип компании в заголовке чата
- Мониторинг активности сотрудников
- Настройка языков
- Общие настройки организации
- Отделы
- Оценки
- Размещения и настройки кнопки на сайте
- Рассылки
- Регистрация операторов и назначение супервизоров
- Системные сообщения
- Список тайм-аутов
- Финансы
- Функции в каналах общения
- Шаблоны ответов
-
- Встраивание административного интерфейса через iframe
- Как узнать версию своего браузера
- Необходимые доступы на сервер
- Необходимые доступы с сервера
- Обработка файлов, загружаемых в чат
- Редактор настроек аккаунта (account config)
- Сетевые конфигурации сервиса Webim
- Системные требования Webim для веб-приложения операторов
- Системные требования Webim для посетителя
- Схемы сетевого размещения серверных компонентов
-
-
-
- Webim Mobile SDK 3.0 для интеграции в мобильные приложения iOS
- Webim Mobile SDK 3.0 для интеграции в мобильные приложения Windows Phone 8.1
- Информация о выпусках (Release notes) – Webim Mobile SDK 3 для Android
- Информация о выпусках (Release notes) – Webim Mobile SDK 3 для iOS
- Справочник по Webim Mobile SDK – SDK для интеграции в мобильные приложения iOS (iPhone/iPad)
- Справочник по Webim Mobile SDK для интеграции в мобильные приложения Android
- Push-уведомления
- Webim Cordova Plugin
-
- Webim CRM postMessage Interface
- Webim Custom Channel API
- Как сделать ссылку кнопкой старта чата
- Маршрутизатор чатов
- Обработчики событий чата
- Процедура установки чата Webim на сайт в iframe
-
External Bot API 2.0
В Webim начиная с версии 10.1 подключение "внешних" или "умных" ботов, которые размещаются на внешнем относительно Webim сервере, происходит посредством External Bot API 2.0. При этом предыдущая версия External Bot API сохранена в 10.1 для поддержки совместимости, то есть поддерживаются обе версии API.
Содержание статьи:
Описание
В отличие от предыдущей версии, External Bot API 2.0 является асинхронным.
Робот принимает от пользователя вопрос и отправляет его на внешний сервер. Сервер генерирует ответ и присылает его обратно в сервис Webim, сервис показывает ответ пользователю. При этом сервер Webim не находится в ожидании ответа с сервера бота: тот сам пришлёт ответ, когда сформулирует его. В отличие от предыдущей версии External Bot API, отвечать на запрос сразу же необязательно, необходимо лишь вернуть код 200 при успешном выполнении запроса, а ответ можно сформулировать потом.
Общая логика
На робота External Bot API автоматически назначаются все онлайн-чаты, которые поступают в отдел, в который этот робот добавлен.
Онлайн-статус робота влияет на общий онлайн-статус системы:
- если робот — «онлайн», то он будет принимать все чаты от пользователей, и кнопка на сайте будет «онлайн»;
- если робот — «невидимка» и нет операторов онлайн, то он будет принимать все чаты от пользователей, но кнопка на сайте будет показываться «офлайн»;
- если робот — «офлайн», то он не будет принимать никакие чаты (и не будет влиять на онлайн-статус кнопки).
Настройка
Инструкция по настройке и подключению умного бота актуальна для сервиса Webim версии 10.3.
Для подключения внешнего робота к сервису Webim:
- Создайте оператора в системе через интерфейс. Инструкцию по созданию оператора см. здесь.
- Перейдите в настройки Вашего аккаунта, выберите раздел Боты.
- В открывшемся окне нажмите на кнопку Создать нового бота.
- Заполните информацию о вашем боте: привяжите его к новому оператору, выберите тип бота "умный бот", в качестве версии — "2".
- В поле Ссылка на внешний API впишите URL-адрес внешнего сервера робота.
- Сохраните изменения.
- После сохранения у вас автоматически сгенерируется токен авторизации запросов и отобразится в поле токена после сохранения.
Базовый URL
Структура URL со стороны Webim:
https://{hostname}/api/bot/v2/{path}
Где {hostname}
— имя хоста, на котором размещается сервер Webim, вида {account}.webim.ru для облачных клиентов и chat.mycompany.com для hosted; {path}
— команда API.
Перечень эндпоинтов External Bot API 2.0:
- /api/bot/v2/send_message
- /api/bot/v2/redirect_chat
- /api/bot/v2/close_chat
- /api/bot/v2/file/{guid}?hash={hash}
Пример URL:
https://mycompany.webim.ru/api/bot/v2/redirect_chat
Данный запрос переведёт чат на оператора.
URL со стороны бота:
задается в настройках
Запросы к Webim
Ниже изложены примеры и описания запросов к Webim Server.
Запросы отправляются на URL, указанный при создании бота.
Авторизация осуществляется через header с использованием токена (см. пункт 7). Для каждого бота генерируется новый токен.
Формат авторизации токена:
Authorization: Token {token}
Пример авторизации токена:
Authorization: Token ac650a3c369a4b9599ad52ab71943712
Обработка ошибок
Ответ Webim в случае успеха приходит с HTTP-кодом 200.
Ошибки возвращаются в формате:
{ "error":"код ошибки" }
Если запрос не проходит валидацию, возвращается HTTP-код 400.
При ошибке авторизации возвращается HTTP-код 403.
Если робот с заданным токеном не найден, возвращается HTTP-код 403.
Если использован метод не из описанных ниже, возвращает ошибку 404 {'error': 'method-not-found'}
.
При разных внутренних ошибках сервера возвращается ошибка с HTTP-кодом 500.
Если отсутствует токен, сервер вернёт ошибку:
{"error": "unauthorized"}
Прочие ошибки приходят с HTTP-кодом 200 в формате:
{ "error": (буквенный код ошибки), "desc": (текстовое описание ошибки) }
Описание полей ошибок:
Поле | Тип | Пример | Описание | Обязательный |
---|---|---|---|---|
error | String | "incorrect-request" | Код ошибки. | Да |
desc | String | "Запрос сформирован неверно. Возможно, пропущены необходимые параметры." | Описание ошибки на английском языке. Не является обязательным. | Нет |
Ответ чат-бота на вопрос посетителя
Path: /send_message
Тип запроса: POST
Content-type: application/json
Query-string параметры: не нужны
Пример URL при отправке ботом сообщения посетителю:
POST https://mycompany.webim.ru/api/bot/v2/send_message
Пример тела запроса при отправке ботом сообщения:
{ "message": Message, "chat_id":3058 }
Описание полей объекта в ответе при отправке ботом сообщения:
Поле | Тип | Описание | Обязательный |
---|---|---|---|
message | JSON | Объект Message. | Да |
chat_id | Integer | Идентификатор чата. | Да |
Объект Message
может иметь разный набор полей в зависимости от типа сообщения.
Текстовое сообщение
Пример содержимого объекта Message
в текстовом сообщении:
{ "kind":"operator", "text":"Здравствуйте, чем я могу вам помочь?" }
Описание полей объекта Message
в текстовом сообщении:
Поле | Тип | Пример | Описание | Обязательный |
---|---|---|---|---|
kind | String | "operator" | Тип сообщения. В данном случае это текстовое сообщение, где kind = "operator" . Все существующие типы сообщений есть в данной статье. |
Да |
text | String | "Здравствуйте. Мне нужна ваша консультация по тарифам" | Содержание текстового сообщения. | Да |
Описание возможных ошибок в текстовом сообщении:
Код ошибки | Описание |
---|---|
message-not-created | Не удалось создать сообщение. Возможно, запрос был сформирован неверно. |
incorrect-request | Запрос сформирован неверно. Возможно, пропущены необходимые параметры. |
chat-not-found | Чат с указанным id либо не был найден, либо не назначен на робота, либо диалог неактивен (потому что был закрыт, переведен в общую очередь и др.) |
Файловое сообщение
Пример содержимого объекта Message
для файлового сообщения:
{ "kind":"file_operator", "data":{ "url":"https://webim.ru/wp-content/uploads/2019/04/diagram.png", "name":"diagram.png", "media_type":"image/png" } }
Описание полей объекта Message
для файлового сообщения:
Поле | Тип | Пример | Описание | Обязательный |
---|---|---|---|---|
kind | String | "file_operator" | Тип сообщения. В данном случае это сообщения оператора, содержащие отправленные файлы. Все существующие типы сообщений есть в данной статье. | Да |
data.url | String | "https://somesite.com/img54-65-79.jpg" | URL-адрес файла. | Да |
data.name | String | "beautifulpicture.jpg" | Имя файла. Имя должно содержать расширение. Бот может отправлять файлы с расширениями, заданными параметром robot_allowed_upload_file_types настроек account config . |
Да |
data.media_type | String | "image/jpeg" | Internet Media Type. Бот может отправлять файлы с media type, заданными параметром robot_allowed_upload_file_content_types . Также могут быть наложены ограничения на размер файлов, отправляемых ботом (подробности см. в статье Обработка файлов, загружаемых в чат). |
Да |
Описание возможных ошибок в файловом сообщении:
Код ошибки | Описание |
---|---|
insecure-file-type | Файл не прошел проверку безопасности. |
incorrect-image | Некорректный файл с изображением. |
media-type-not-match | Несоответствие заявленного Media Type с фактическим. |
max-file-size-exceeded | Размер файла превышает допустимый. |
message-not-created | Не удалось создать сообщение. Возможно, запрос был сформирован неверно. |
incorrect-request | Запрос сформирован неверно. Возможно, пропущены необходимые параметры. |
chat-not-found | Чат с указанным id либо не был найден, либо не назначен на робота, либо диалог неактивен (потому что был закрыт, переведен в общую очередь и др.). |
Сообщение с кнопками
Пример содержимого объекта Message
для сообщения с кнопками:
{ "kind":"keyboard", "buttons":[ [ { "text":"Перевести на техподдержку", "id":"fedc60c4dc0d4348b48b524d" } ], [ { "text":"Перевести на отдел продаж", "id":"574f2caad88a41a7a2d6b667" } ] ] }
Описание полей объекта Message
для сообщения с кнопками:
Поле | Тип | Описание | Обязательный |
---|---|---|---|
kind | String | Тип сообщения. Сообщения с кнопками являются типами keyboard или keyboard_response . Все существующие типы сообщений есть в данной статье. |
Да |
buttons | list | Вложенный массив, содержащий данные об отправляемых посетителю кнопках. Позволяет группировать наборы кнопок, предлагаемые посетителю, в строки. | Да |
В свою очередь Buttons состоит из массивов Button.
Каждый объект Button содержит в массиве следующие параметры:
Поле | Тип | Пример | Описание | Обязательный |
---|---|---|---|---|
id | String | "937bec4863154a2fb0889ff1" | Идентификатор кнопки. Может быть не более 24 символов в длину. | Да |
text | String | "Задать вопрос оператору" | Текст кнопки. | Да |
Описание возможных ошибок в сообщении с кнопками:
Код ошибки | Описание |
---|---|
incorrect-buttons | Сообщение с кнопками составлено неверно. |
message-not-created | Не удалось создать сообщение. Возможно, запрос был сформирован неверно. |
incorrect-request | Запрос сформирован неверно. Возможно, пропущены необходимые параметры. |
chat-not-found | Чат с указанным id либо не был найден, либо не назначен на робота, либо диалог неактивен (потому что был закрыт, переведен в общую очередь и др.). |
Перевод чата
Чат может переводиться на конкретного оператора или отдел. Если при переводе не указан ни оператор, ни отдел для перевода, запрос не выполнится корректно и чат не будет перенаправлен. То же самое будет в случае, если при переводе чата указан и оператор, и отдел (необходимо указывать что-то одно).
Path: /redirect_chat
Тип запроса: POST
Content-type: application/json
Query-string параметры: не нужны
Пример URL при переводе чата:
POST https://mycompany.webim.ru/api/bot/v2/redirect_chat
Перевод на оператора
Пример тела запроса при переводе чата на оператора:
{ "operator_id":486254, "chat_id":195 }
Описание полей объекта в ответе на запрос при переводе чата на оператора:
Поле | Тип | Пример | Описание | Обязательный |
---|---|---|---|---|
operator_id | Integer | 168524 | Идентификатор оператора. | Да |
chat_id | Integer | 426 | Идентификатор чата. | Да |
Описание возможных ошибок при переводе чата на оператора:
Код ошибки | Описание |
---|---|
operator-not-found | Оператор с указанным id не найден. |
target-is-offline | Оператор в состоянии offline. |
incorrect-request | Запрос сформирован неверно. Возможно, пропущены необходимые параметры. |
chat-not-found | Чат с указанным id либо не был найден, либо не назначен на робота, либо диалог неактивен (потому что был закрыт, переведен в общую очередь и др.). |
Перевод на отдел
Пример тела запроса при переводе чата на отдел:
{ "dep_key":"sales_department", "chat_id":425, "allow_redirect_to_offline_dep":false, "allow_redirect_to_invisible_dep":true }
Описание полей объекта в ответе на запрос при переводе чата на отдел:
Поле | Тип | Пример | Описание | Обязательный |
---|---|---|---|---|
dep_key | String | "sales_department" | Идентификатор (текстовый ключ) отдела. | Да |
chat_id | Integer | 168 | Идентификатор чата. | Да |
allow_redirect_to_offline_dep | Boolean | "false" | Переводить ли чат на отдел, если в нем все операторы офлайн. Соответственно, обращения переводятся и при операторах в остальных статусах — Невидимке и прочих. По умолчанию false. | Нет |
allow_redirect_to_invisible_dep | Boolean | "true" | Переводить ли чат на отдел, если в нем нет операторов онлайн — достаточно, чтобы оператор был в статусе Невидимка или аналогичных ему. Если включён параметр allow_redirect_to_offline_dep , тогда функциональность allow_redirect_to_invisible_dep включается автоматически, так как это более сильное свойство. Таким образом, от предыдущего параметра данный параметр отличается тем, что при его включении чаты не переводятся только в те отделы, где все операторы находятся в статусе Офлайн. По умолчанию true. |
Нет |
Выставлять значение true
одновременно параметру allow_redirect_to_offline_dep
и параметру allow_redirect_to_invisible_dep
нельзя.
Описание возможных ошибок при переводе чата на отдел:
Код ошибки | Описание |
---|---|
department-not-found | Отдел с указанным id не найден. |
target-is-offline | Отдел в состоянии offline. |
incorrect-request | Запрос сформирован неверно. Возможно, пропущены необходимые параметры. |
chat-not-found | Чат с указанным id либо не был найден, либо не назначен на робота, либо диалог неактивен (потому что был закрыт, переведен в общую очередь и др.). |
Закрытие чата
Path: /close_chat
Тип запроса: POST
Content-type: application/json
Query-string параметры: не нужны
Пример URL при закрытии чата:
POST https://mycompany.webim.ru/api/bot/v2/close_chat
Пример тела запроса при закрытии чата:
{ "chat_id":462 }
Описание полей объекта в ответе на запрос при закрытии чата:
Поле | Тип | Пример | Описание | Обязательный |
---|---|---|---|---|
chat_id | Integer | 241 | Идентификатор чата | Да |
Описание возможных ошибок при закрытии чата:
Код ошибки | Описание |
---|---|
incorrect-request | Запрос сформирован неверно. Возможно, пропущены необходимые параметры. |
chat-not-found | Чат с указанным id либо не был найден, либо не назначен на робота, либо диалог неактивен (потому что был закрыт, переведен в общую очередь и др.). |
Скачивание файлов
При помощи данного запроса клиент может скачать файл, присланный посетителем в чате с ботом.
Path: /file/{guid}?hash={hash}
Тип запроса: GET
Query-string параметры: hash – посчитанный hash
Пример URL при скачивании файлов:
GET https://mycompany.webim.ru/api/bot/v2/file/7d5d197ef3ee4b29be6b1a668977ccdc?hash=e96881ac8db26e8570cd9c032900cd3e0b08128132e61c844102633c64a69b2a
где:
- 7d5d197ef3ee4b29be6b1a668977ccdc – guid (уникальный идентификатор) файла;
- e96881ac8db26e8570cd9c032900cd3e0b08128132e61c844102633c64a69b2a – hash-сумма файла, помогающая обезопасить файл от нежелательного скачивания
Результатом обращения на данный URL будет скачивание клиентом файла, присланного посетителем в чате. Механизм скачивания файлов, присланных посетителем, описан в статье.
Ссылка на скачивание файла приходит внутри сообщения, у которого kind
= file_visitor
.
Если не прошла авторизация с хэшем файла, сервер вернёт ошибку: 403 {'error': 'access-denied'}
Если файл не найден или использован метод не 'file', сервер вернёт ошибку: 404 {'error': 'file-not-found'}
Запросы от Webim на бот-сервер
Webim обращается на URL-адрес бота, который задаётся в настройках Панели управления при создании бота (см. пункт 5).
Для этих запросов авторизация не требуется.
Для повышения безопасности в URL бота (пункт 5) можно добавить секретный ключ. Он вставляется в URL следующим образом: вместо address
указывается address/secret_key
, где secret_key
– некоторая последовательность символов.
В случае, если запрос со стороны Webim не проходит на бота, сервер Webim будет пытаться отправить его ещё четыре раза после неудачи: сначала через 2 секунды после неудачной попытки, потом через 4, 8 и 16 секунд (отсчёт с последней неудачной попытки).
HTTP-запросы от сервиса Webim к серверу в заголовке содержат следующие параметры:
- '
X-Bot-API-Dialect
' — "диалект" API (в данном случае Webim Standard); - '
X-Bot-API-Version
' — версия API (в данном случае 2.0); - '
X-Webim-Version
' — полная версия Webim (например: 10.3.11)
Обработка ошибок
В случае успеха бот должен дать следующий ответ:
200 OK
Тело ответа бот-сервера на запрос Webim должно содержать:
{ "result":"ok" }
В случае получения другого ответа чат будет переведен в общую очередь.
Назначение чата на робота
Тип запроса: POST
Content-type: application/json
Query-string параметры: не нужны
Вызывается при создании чата либо при переводе чата на робота.
Пример тела запроса при назначении чата на бота:
{ "event":"new_chat", "chat":{ "id":452 }, "visitor":{ "id":"03e1c040d8214bfa8ccfbb053186a24a", "fields":{ "email":"support@webim.ru", "id":"asdf123", "icq":"123123123", "login":"somelogin", "name":"asdf123", "phone":"+7 (812) 385-53-37", "profile_url":"https://vk.com/webimru", "site":"https://webim.ru" } } "messages": [ Message, Message, ... ] }
Описание полей объекта в ответе на запрос:
Поле | Тип | Пример | Описание | Обязательный |
---|---|---|---|---|
event | String | "new_chat" | Тип события. | Да |
chat.id | Integer | 247 | Идентификатор чата. | Да |
visitor.id | String | "03e1c040d8214bfa8ccfbb053186a24a" | Псевдоуникальный идентификатор посетителя, который ему всегда назначает Webim. | Да |
visitor.fields | JSON | "{"name": "Владислав", "phone": "+79113258746", ...} | Известная информация о посетителе в виде пар ключ-значение. Идентификатор посетителя внутри visitor.fields передаётся в Webim фронтэндом, может быть произвольного вида и не быть уникальным. Если отсутствует visitor.fields, то идентификатор, соответственно, отсутствует. В случае наличия visitor.fields идентификатор является обязательным полем, все остальные поля — нет. Описание всех полей visitor.fields можно посмотреть здесь. | Нет |
messages | Массив объектов Message | Приведены ниже в описании события new_message |
Сообщения, которые присылал посетитель и которые накопились к моменту, когда чат был назначен на бота (сообщение из каналов, из виджета, если включён запрос контактных данных перед началом чата). | Нет |
Новое сообщение
Тип запроса: POST
Content-type: application/json
Query-string параметры: не нужны
Пример тела запроса при отправке сообщения боту:
{ "event":"new_message", "message": Message, "chat_id":245 }
Описание полей объекта в ответе на запрос:
Поле | Тип | Пример | Описание | Обязательный |
---|---|---|---|---|
event | String | "new_message" | Тип события. | Да |
message | Message | Приведены ниже | Объект Message. | Да |
chat_id | Integer | 247 | Идентификатор чата. | Да |
Объект Message
может содержать в себе разные виды данных и полей.
Текстовое сообщение
Пример содержимого объекта Message
в текстовом сообщении:
{ "id":"feb8e0f7fe08486db2494c2d5058fd33", "kind":"visitor", "text":"Здравствуйте" }
Описание полей объекта Message
:
Поле | Тип | Пример | Описание | Обязательный |
---|---|---|---|---|
id | String | "feb8e0f7fe08486db2494c2d5058fd33" | Идентификатор сообщения на стороне Webim. | Да |
kind | String | "operator" | Тип сообщения. Все типы поддерживаемых Webim сообщений перечислены в этой статье. При использовании External Bot API 2.0 применимы не все из них. | Да |
text | String | "Могу ли я вам помочь?" | Текст сообщения. | Да |
Файловое сообщение
Бот должен вернуть ответ {"result": "ok"}
для сообщений, где media_type
= json
.
По мере отправки файла будет отправляться не один, а несколько запросов, количество которых зависит от размера файла: чем большего он размера, тем длительнее загрузка. В процессе загрузки файла (при значении "upload" в поле "state") каждый новый запрос будет содержать обновлённое значение процентов загрузки файла (поле "progress"). Последний запрос при отправке файла будет иметь значение "ready" в поле "state", что значит, что файл отправлен.
Пример содержимого объекта Message
в запросах с файловым сообщением:
{ "id":"c3e19d57f64e43c3afabdef2ef4e4054", "kind":"file_visitor", "data":{ "id":"81f0488", "state":"upload", "progress": 50, "size":560 "url":"https://yoursite.com/content/file.txt", } }
{ "id":"c3e19d57f64e43c3afabdef2ef4e4054", "kind":"file_visitor", "data":{ "id":"81f0488", "state":"upload", "progress": 89, "size":560 "url":"https://yoursite.com/content/file.txt", } }
{ "id":"c3e19d57f64e43c3afabdef2ef4e4054", "kind":"file_visitor", "data":{ "id":"81f0488", "state":"ready", "name":"file.txt", "content_type":"text", "size":560 "url":"https://yoursite.com/content/file.txt", } }
Описание полей объекта Message
:
Поле | Тип | Пример | Описание | Обязательный |
---|---|---|---|---|
id | String | "6355ba4163f947b9b77f7e65ce4317a7" | Идентификатор сообщения на стороне Webim. | Да |
kind | String | "file_visitor" | Тип сообщения, в данном случае файл, отправленный посетителем (file_visitor ). Все существующие типы сообщений перечислены в этой статье. |
Да |
data.id | String | "81f0488" | Идентификатор файла. | Да |
data.state | String | "upload" | Состояние, в котором находится отправленный файл (upload — если находится в процессе загрузки, ready — если загрузка завершена). |
Да |
data.name | String | "somefile.pdf" | Название файла. При data.state = upload может отсутствовать. |
Нет |
data.media_type | String | "application/pdf" | Internet Media Type. При data.state = upload может отсутствовать. |
Нет |
data.size | Integer | 12350 | Размер файла в байтах. | Нет |
data.progress | Integer | 95 | Степень загрузки файла при data.state = upload . Указывается в процентах. |
Нет |
data.url | String | "https://yoursite.com/content/document.pdf" | URL-адрес загруженного файла (при data.state = "ready"). |
Да |
Нажатие на кнопку
Запрос содержит выбранную посетителем кнопку.
Пример содержимого объекта Message
в сообщении с нажатой кнопкой:
{ "id":"ddaa8401e1ef4910abb3657f3ea09683", "kind":"keyboard_response", "data":{ "button":{ "id":"937bec4863154a2fb0889ff1320d1e2f", "text":"Задать вопрос оператору" }, "request":{ "messageId":"fede9187f3da41c9849976a01a40d899" } } }
Описание полей объекта Message
:
Поле | Тип | Пример | Описание | Обязательный |
---|---|---|---|---|
id | String | "ddaa8401e1ef4910abb3657f3ea09683" | Идентификатор сообщения на стороне Webim. | Да |
kind | String | "keyboard_response" | Тип сообщения. Все типы сообщений в этой статье. | Да |
data.button | Button | Объект Button | Нажатая кнопка. | Да |
data.request.messageId | String | "fede9187f3da41c9849976a01a40d899" | Идентификатор сообщения, кнопка которого была нажата. | Да |
Обновление сообщения
Тип запроса: POST
Content-type: application/json
Query-string параметры: не нужны
Пример тела запроса при обновлении сообщения:
{ "event": "message_updated", "message": Message, "chat_id": 8754 }
Описание полей объекта в ответе на запрос:
Поле | Тип | Пример | Описание | Обязательный |
---|---|---|---|---|
event | String | "message_updated" | Тип события. | Да |
message | Message | Объект Message. Его вид аналогичен виду в событии new_message |
Содержание объекта Message после обновления. | Да |
chat_id | Integer | 2547 | Идентификатор чата. | Да |