Описание передаваемых данных API хэндлеров чата (версия 1)
Данная статья посвящена описанию формата передаваемых данных API хэндлеров чата версии 1.
Содержимое поля chat
Пример передаваемых данных можно увидеть ниже. Описание параметров:
| Имя параметра | Описание параметра |
|---|---|
category |
Категория чата, присваивается оператором. |
subcategory |
Подкатегория чата, присваивается оператором. |
start_page |
Страница, на которой посетитель начал чат. |
locale |
Язык посетителя. |
visitor |
Данные о посетителе в виде плоского объекта полей (результат слияния всех известных полей посетителя). В отличие от версий 2 и выше здесь нет обёртки {id, fields} — передаётся непосредственно словарь полей. |
created_at |
Дата и время начала чата. |
messages |
Массив сообщений в диалоге на момент отправки события. |
department_key |
Текстовый идентификатор отдела, в который обратился посетитель. |
operator |
Данные об операторе. |
id |
Уникальный номер чата в системе Webim. |
visit_session |
Данные о сессии посетителя. |
Содержимое объекта visitor
В версии 1 поле visitor содержит плоский словарь — результат слияния всех известных полей посетителя (например, name, phone, email). Обёртки {id, fields} нет.
| Имя параметра | Описание параметра |
|---|---|
| (ключи) | Поля посетителя напрямую: name, phone, email и другие — при наличии данных. |
Содержимое экземпляра объекта messages
| Имя параметра | Описание параметра |
|---|---|
created_at |
Время отправки сообщения. |
message |
Текст сообщения. |
kind |
Тип сообщения (см. Типы и подтипы сообщений). |
Содержимое объекта operator
| Имя параметра | Описание параметра |
|---|---|
id |
Идентификатор оператора. |
email |
Email оператора. |
name |
Имя оператора. |
Содержимое объекта visit_session
| Имя параметра | Описание параметра |
|---|---|
ip |
IP-адрес посетителя. |
landing_page |
Первая просмотренная посетителем страница на сайте. |
Пример передаваемых данных
{
"created_at": "2023-10-18T08:41:43Z",
"id": 1069,
"locale": "ru",
"department_key": "automated_department",
"operator": {
"id": 240557,
"email": "test@test.com",
"name": "Administrator"
},
"category": "Важные чаты",
"subcategory": null,
"messages": [
{
"created_at": "2023-10-18T08:41:43Z",
"kind": "for_operator",
"message": "Посетитель открыл окно диалога со страницы Тестовая страница: https://test.com/sample-page.php"
},
{
"created_at": "2023-10-18T08:41:43Z",
"kind": "visitor",
"message": "Здравствуйте. Есть вопрос..."
},
{
"created_at": "2023-10-18T08:41:58Z",
"kind": "info",
"message": "Оператор Administrator включился в разговор."
},
{
"created_at": "2023-10-18T08:41:59Z",
"kind": "operator",
"message": "А у нас есть ответ!",
"operator_id": 240557
}
],
"visitor": {
"name": "Степан",
"phone": "+7 (999) 999-99-99",
"email": "stepan@example.com"
},
"visit_session": {
"ip": "192.0.2.1",
"landing_page": {
"url": "https://test.com/sample-page.php"
}
},
"start_page": {
"url": "https://test.com/sample-page.php"
}
}
Проверка контрольной суммы
Для обеспечения подлинности данных используется контрольная сумма. Алгоритм расчёта для API обработчиков событий чата версии 1 следующий:
1. Создаётся строка: содержимое `chat` + приватный ключ. Между содержимым объекта и приватным ключом нет никаких символов.
1. Для строки, созданной на этапе 1, вычисляется контрольная сумма по алгоритму `MD5`.
1. Полученная строка записывается в `crc`.
Пример кода для проверки контрольной суммы (Python):
import hashlib
def check_crc(chat, account_key, sent_crc):
m = hashlib.md5()
m.update(chat.encode())
m.update(account_key.encode())
crc = m.hexdigest()
return crc == sent_crc
Последнее обновление страницы:
27 марта 2026 г.