Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «При добавлении сообщения в чат OnOpenLineMessageAdd». Вы узнаете экспертные методики работы с добавлении сообщения и научитесь избегать типичных ошибок начинающих разработчиков.
При добавлении сообщения в чат OnOpenLineMessageAdd
> Scope: imopenlines
>
> Кто может подписаться: любой пользователь
Событие OnOpenLineMessageAdd срабатывает при добавлении сообщения в чат открытой линии.
Подписаться на событие можно только через приложение. Получить в обработчик можно только те события, которые предназначены для коннектора, который добавило приложение.
События не будут отправляться в приложение, пока установка не завершена. Проверьте установку приложения
Что получает обработчик
Данные передаются в виде POST-запроса
[
'event' => 'ONOPENLINEMESSAGEADD',
'eventId' => 1,
'data' => [
'DATA' => [
[
'connector' => [
'connector_id' => 'livechat',
'line_id' => 128,
'chat_id' => 10587,
'user_id' => 1985,
],
'chat' => [
'id' => 10585
],
'message' => [
'id' => 80964,
'date' => '',
'text' => 'hello',
'files' => [
],
'attach' => '',
'system' => 'N',
'user_id' => 1985
],
'ref' => [
],
'extra' => [
'EXTRA_URL' => ''
],
],
],
],
'ts' => 1714649632,
'auth' => [
'access_token' => 's6p6eclrvim6da22ft9ch94ekreb52lv',
'expires_in' => 3600,
'scope' => 'imopenlines',
'domain' => 'some-domain.bitrix24.com',
'server_endpoint' => 'https://oauth.bitrix24.tech/rest/'',
'status' => 'F',
'client_endpoint' => 'https://some-domain.bitrix24.com/rest/'',
'member_id' => 'a223c6b3710f85df22e9377d6c4f7553',
'refresh_token' => '4s386p3q0tr8dy89xvmt96234v3dljg8',
'application_token' => '51856fefc120afa4b628cc82d3935cce',
],
]Входящие параметры и конфигурация метода
Названиетип | Описание |
|---|---|
eventstring | Символьный код события |
eventIdinteger | Идентификатор события |
dataobject | Объект с данными события |
tsinteger | timestamp отправки события из очереди событий |
authobject | Объект с параметрами авторизации и данными о портале, на котором произошло событие |
Параметр data {#data}
Названиетип | Описание |
|---|---|
DATAobject | Объект с данными чата |
Параметр DATA {#chat-params}
Названиетип | Описание |
|---|---|
connectorobject | Объект с информацией о коннекторе: — connector_id — идентификатор коннектора— line_id — идентификатор открытой линии— chat_id — идентификатор чата— user_id — идентификатор пользователя во внешней системе |
chatobject | Объект с информацией о чате: — id — идентификатор чата |
messageobject | Объект с информацией о сообщении: — id — идентификатор сообщения— date — дата и время добавления— text — текст сообщения— files — файлы— attach — прикрепленные файлы— system — отметка, что сообщения вляется системным. Имеет значение Y, если системное — user_id — идентификатор пользователя |
refobject | Код трекера trackId для привязки сообщения к объекту CRM |
extra*object | Объект дополнительной информацией: — EXTRA_URL — внешняя ссылка для Bitrix24.Network |
Параметр auth
💡 Экспертное мнение и рекомендации
Практические рекомендации:
- При написании кастомных компонентов для «При добавлении сообщения в чат OnOpenLineMessageAdd» всегда разделяйте бизнес-логику и представление (шаблон).
- Используйте отладку SQL-запросов через конструкцию
$wpdb->last_queryили стандартный трекер Битрикса, чтобы контролировать нагрузку.
Похожая задача в бизнесе?
Помогу автоматизировать процессы и внедрить ИИ
Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.
или на почту: gorandvas@yandex.ru