При удалении сообщения в чате открытой линии OnOpenLineMessageDelete
Выберите инструмент для разработки с AI-агентом:
- используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
- используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации
Scope:
imopenlinesКто может подписаться: любой пользователь
Событие OnOpenLineMessageDelete сработает при удалении сообщения в чате открытой линии:
- клиент удалил сообщение через коннектор, например коннектор вызвал метод imconnector.delete.messages
- оператор удалил сообщение, которое Битрикс24 уже передал во внешний канал связи
Для сообщения оператора событие придет, только если коннектор подтвердил его доставку методом imconnector.send.status.delivery. Без подтверждения Битрикс24 не знает идентификатор сообщения во внешней системе и событие не отправляет. Для онлайн-чата событие об удалении сообщения оператора не отправляется.
Подписаться на событие можно только через приложение. Событие приходит по всем каналам связи открытых линий, а не только по коннектору приложения. Проверяйте код коннектора в CONNECTOR или DATA.connector.connector_id.
События не будут отправляться в приложение, пока установка не завершена. Проверьте установку приложения
Что получает обработчик
Данные передаются в виде POST-запроса
Состав data зависит от того, кто удалил сообщение.
Сообщение клиента. В data приходит только ключ DATA. Его состав такой же, как у сообщения клиента в событии OnOpenLineMessageAdd:
{
"event": "ONOPENLINEMESSAGEDELETE",
"event_handler_id": 147,
"data": {
"DATA": {
"connector": {
"connector_id": "my_connector",
"line_id": 1,
"chat_id": "ext-chat-42",
"user_id": 1985
},
"chat": {
"id": "ext-chat-42"
},
"message": {
"id": "ext-msg-501",
"user_id": 1985
},
"ref": [],
"extra": []
}
},
"ts": 1714649702,
"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"
}
}
Сообщение оператора. Кроме DATA, в data приходят ключи CONNECTOR и LINE. Здесь DATA — массив: по одному элементу на каждый идентификатор сообщения во внешней системе:
{
"event": "ONOPENLINEMESSAGEDELETE",
"event_handler_id": 147,
"data": {
"CONNECTOR": "my_connector",
"LINE": 1,
"DATA": [
{
"im": {
"chat_id": 10587,
"message_id": 80970
},
"message": {
"id": "ext-msg-777"
},
"chat": {
"id": "ext-chat-42"
}
}
]
},
"ts": 1714649710,
"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"
}
}
Обязательные параметры отмечены *
|
Параметр |
Описание |
|
event* |
Символьный код события. В данном случае — |
|
event_handler_id* |
Идентификатор обработчика события |
|
data* |
Объект с данными удаленного сообщения. Структура описана ниже |
|
ts* |
Дата и время отправки события из очереди событий |
|
auth* |
Объект, содержащий параметры авторизации и данные о Битрикс24, на котором произошло событие. Структура описана ниже |
Параметр data
|
Параметр |
Описание |
|
CONNECTOR |
Код коннектора. Приходит только для сообщения оператора |
|
LINE |
Идентификатор открытой линии. Приходит только для сообщения оператора |
|
Данные сообщения. Для сообщения клиента — объект, его структура описана в событии OnOpenLineMessageAdd. Для сообщения оператора — массив объектов, структура элемента описана ниже |
Элемент DATA для сообщения оператора
|
Параметр |
Описание |
|
im* |
Объект с информацией о сообщении в Битрикс24. Структура описана ниже |
|
message* |
Объект с идентификатором сообщения во внешней системе. Структура описана ниже |
|
chat* |
Объект с информацией о чате во внешней системе. Структура описана ниже |
Параметр im
|
Параметр |
Описание |
|
chat_id* |
Идентификатор чата открытой линии в Битрикс24 |
|
message_id* |
Идентификатор сообщения в Битрикс24 |
Параметр message
|
Параметр |
Описание |
|
id* |
Идентификатор сообщения во внешней системе, который коннектор передал при подтверждении доставки |
Параметр chat
|
Параметр |
Описание |
|
id* |
Идентификатор чата во внешней системе |
Параметр auth
Обязательные параметры отмечены *
|
Название |
Описание |
|
access_token |
Токен авторизации OAuth 2.0 |
|
expires_in |
Время в секундах до истечения срока действия токена |
|
scope* |
Скоуп, в рамках которого произошло событие |
|
domain* |
Адрес Битрикс24, на котором произошло событие |
|
server_endpoint* |
Адрес сервера авторизации Битрикс24, необходимый для обновления токенов OAuth 2.0 |
|
status* |
Статус приложения, подписавшегося на это событие:
|
|
client_endpoint* |
Общий путь для вызовов методов REST API для Битрикс24, на котором произошло событие |
|
member_id* |
Идентификатор Битрикс24, на котором произошло событие |
|
refresh_token |
Токен продления авторизации OAuth 2.0 |
|
application_token* |
Токен для безопасной обработки событий |
Токены авторизации не всегда передаются в обработчик события. Если хит, инициировавший событие, не удалось привязать к конкретному пользователю Битрикс24, токены не передаются. Обязательно проверяйте содержимое ключа auth в коде.
Рекомендуем хранить токены, полученные ранее при установке приложения. Используйте их при работе с интерфейсом приложения в виде встроек, виджетов и так далее.
Продолжите изучение
- События: обзор методов и событий
- Зарегистрировать новый обработчик события event.bind
- При добавлении сообщения в чат открытой линии OnOpenLineMessageAdd
- При изменении сообщения в чате открытой линии OnOpenLineMessageUpdate
- При создании сессии открытой линии OnSessionStart
- При закрытии сессии открытой линии OnSessionFinish