Событие при изменении сообщения ONIMBOTMESSAGEUPDATE

Scope: imbot

Кто может подписаться: пользователь приложения, которое зарегистрировало чат-бота

DEPRECATED

Развитие события остановлено. Используйте ONIMBOTV2MESSAGEUPDATE.

Событие ONIMBOTMESSAGEUPDATE срабатывает при изменении сообщения в диалоге с чат-ботом. Событие работает только в контексте приложения чат-бота.

Для ботов с TYPE=B/H и OPENLINE=N параметр EVENT_MESSAGE_UPDATE игнорируется в методе imbot.register. Чтобы событие срабатывало для таких ботов, привяжите обработчик EVENT_MESSAGE_UPDATE с помощью метода imbot.update.

События не будут отправляться в приложение, пока установка не завершена. Проверьте установку приложения

Правило срабатывания события

Событие срабатывает, если привязан обработчик EVENT_MESSAGE_UPDATE и сообщение соответствует логике типа бота:

  • TYPE=B/H:
    • личный чат с ботом: событие срабатывает независимо от упоминаний,
    • групповой чат: срабатывает только при упоминании бота,
  • TYPE=S — событие срабатывает независимо от упоминаний,
  • TYPE=O — событие срабатывает в чатах открытых линий, где участвует бот.

Без EVENT_MESSAGE_UPDATE событие не сработает независимо от упоминаний.

Что получает обработчик

Данные передаются в виде POST-запроса

{
            "event": "ONIMBOTMESSAGEUPDATE",
            "event_handler_id": "455",
            "data": {
                "BOT": {
                    "571": {
                        "access_token": "880aa0690000071b000008440000023bf0f107a4af72f200b757ece",
                        "expires": "1772096136",
                        "expires_in": "3600",
                        "scope": "imbot",
                        "domain": "some-domain.bitrix24.ru",
                        "server_endpoint": "https://oauth.bitrix24.tech/rest/",
                        "status": "F",
                        "client_endpoint": "https://some-domain.bitrix24.ru/rest/",
                        "member_id": "bac1cd5c8940947a75e0d71b1a84e348",
                        "refresh_token": "7889c7690000071b000008440000023bf0f107ad212748fb2268",
                        "user_id": "571",
                        "client_id": "a7eff906dd1d950269258a599214f69e",
                        "application_token": "831c76b092f9f135d9b6b36c3a720757",
                        "AUTH": {
                            "access_token": "880aa0690000071b000008440000023bf0f107a4af72f200b757ece",
                            "expires": "1772096136",
                            "expires_in": "3600",
                            "scope": "imbot",
                            "domain": "some-domain.bitrix24.ru",
                            "server_endpoint": "https://oauth.bitrix24.tech/rest/",
                            "status": "F",
                            "client_endpoint": "https://some-domain.bitrix24.ru/rest/",
                            "member_id": "bac1cd5c8940947a75e0d71b1a84e348",
                            "refresh_token": "7889c7690000071b000008440000023bf0f107ad212748fb2268",
                            "user_id": "571",
                            "client_id": "a7eff906dd1d950269258a599214f69e",
                            "application_token": "831c76b092f9f135d9b6b36c3a720757"
                        },
                        "BOT_ID": "571",
                        "BOT_CODE": "BOT"
                    }
                },
                "PARAMS": {
                    "ID": "84531",
                    "CHAT_ID": "1453",
                    "AUTHOR_ID": "27",
                    "MESSAGE": "Как добавить наблюдателя в задачу?",
                    "MESSAGE_TYPE": "P",
                    "CHAT_AUTHOR_ID": "571",
                    "CHAT_ENTITY_ID": "",
                    "CHAT_ENTITY_DATA_1": "",
                    "CHAT_ENTITY_DATA_2": "",
                    "CHAT_ENTITY_DATA_3": "",
                    "FROM_USER_ID": "27",
                    "TO_USER_ID": "571",
                    "CHAT_USER_COUNT": "2",
                    "PLATFORM_CONTEXT": "web",
                    "DIALOG_ID": "27",
                    "MESSAGE_ID": "84531",
                    "CHAT_TYPE": "P",
                    "LANGUAGE": "ru"
                },
                "USER": {
                    "ID": "27",
                    "NAME": "Светлана Иванова",
                    "FIRST_NAME": "Светлана",
                    "LAST_NAME": "Иванова",
                    "WORK_POSITION": "",
                    "GENDER": "F",
                    "IS_BOT": "N",
                    "IS_CONNECTOR": "N",
                    "IS_NETWORK": "N",
                    "IS_EXTRANET": "N"
                }
            },
            "ts": "1772092536",
            "auth": {
                "access_token": "880aa06900071b00084400001b0007dff360d21523410a45b4f7c12",
                "expires": "1772096136",
                "expires_in": "3600",
                "scope": "imbot",
                "domain": "some-domain.bitrix24.ru",
                "server_endpoint": "https://oauth.bitrix24.tech/rest/",
                "status": "F",
                "client_endpoint": "https://some-domain.bitrix24.ru/rest/",
                "member_id": "bac1cd5c8940947a75e0d71b1a84e348",
                "user_id": "27",
                "refresh_token": "7889c769000071b000084400001b00007c0063d012b7284",
                "application_token": "831c76b092f9f135d9b6b36c3a720757"
            }
        }
        
{
            "event": "ONIMBOTMESSAGEUPDATE",
            "event_handler_id": "455",
            "data": {
                "BOT": {
                    "571": {
                        "access_token": "2c1da06900071b00084400023bf0f107464a9d34dc68a6b185f",
                        "expires": "1772100908",
                        "expires_in": "3600",
                        "scope": "imbot",
                        "domain": "some-domain.bitrix24.ru",
                        "server_endpoint": "https://oauth.bitrix24.tech/rest/",
                        "status": "F",
                        "client_endpoint": "https://some-domain.bitrix24.ru/rest/",
                        "member_id": "bac1cd5c8940947a75e0d71b1a84e348",
                        "refresh_token": "1c9cc76900071b00084400023bf0f107bbc698c8eca4b3e89099f4",
                        "user_id": "571",
                        "client_id": "a7eff906dd1d950269258a599214f69e",
                        "application_token": "831c76b092f9f135d9b6b36c3a720757",
                        "AUTH": {
                            "access_token": "2c1da06900071b00084400023bf0f107464a9d34dc68a6b185f",
                            "expires": "1772100908",
                            "expires_in": "3600",
                            "scope": "imbot",
                            "domain": "some-domain.bitrix24.ru",
                            "server_endpoint": "https://oauth.bitrix24.tech/rest/",
                            "status": "F",
                            "client_endpoint": "https://some-domain.bitrix24.ru/rest/",
                            "member_id": "bac1cd5c8940947a75e0d71b1a84e348",
                            "refresh_token": "1c9cc76900071b00084400023bf0f107bbc698c8eca4b3e89099f4",
                            "user_id": "571",
                            "client_id": "a7eff906dd1d950269258a599214f69e",
                            "application_token": "831c76b092f9f135d9b6b36c3a720757"
                        },
                        "BOT_ID": "571",
                        "BOT_CODE": "BOT"
                    }
                },
                "PARAMS": {
                    "ID": "84537",
                    "CHAT_ID": "1157",
                    "AUTHOR_ID": "27",
                    "MESSAGE": "оформи список задач",
                    "MESSAGE_TYPE": "C",
                    "CHAT_AUTHOR_ID": "27",
                    "CHAT_ENTITY_TYPE": "THREAD",
                    "CHAT_ENTITY_ID": "",
                    "CHAT_ENTITY_DATA_1": "",
                    "CHAT_ENTITY_DATA_2": "",
                    "CHAT_ENTITY_DATA_3": "",
                    "CHAT_USER_COUNT": "2",
                    "MENTIONED_LIST": {
                        "571": "571"
                    },
                    "PLATFORM_CONTEXT": "web",
                    "MESSAGE_ORIGINAL": "[USER=571]NewBot[/USER], оформи список задач",
                    "TO_USER_ID": "571",
                    "DIALOG_ID": "chat1157",
                    "MESSAGE_ID": "84537",
                    "CHAT_TYPE": "C",
                    "LANGUAGE": "ru"
                }
            },
            "ts": "1772097308",
            "auth": {
                "access_token": "2c1da06900071b00084400001b00077e03d155e8",
                "expires": "1772100908",
                "expires_in": "3600",
                "scope": "imbot",
                "domain": "some-domain.bitrix24.ru",
                "server_endpoint": "https://oauth.bitrix24.tech/rest/",
                "status": "F",
                "client_endpoint": "https://some-domain.bitrix24.ru/rest/",
                "member_id": "bac1cd5c8940947a75e0d71b1a84e348",
                "user_id": "27",
                "refresh_token": "1c9cc76900071b00084400001b00007b2dbee904c1",
                "application_token": "831c76b092f9f135d9b6b36c3a720757"
            }
        }
        

Параметр
тип

Описание

event
string

Символьный код события.

В данном случае — ONIMBOTMESSAGEUPDATE

event_handler_id
integer

Идентификатор обработчика события.

data
object

Объект с данными события.

Структура описана ниже

ts
timestamp

Дата и время отправки события из очереди событий

auth
object

Объект с параметрами авторизации пользователя, от имени которого сработало событие.

Структура описана ниже

Параметр data

Параметр
тип

Описание

BOT
object

Набор параметров авторизации ботов, которым адресовано событие. Ключ объекта — идентификатор бота BOT_ID.

Структура описана ниже

PARAMS
object

Параметры измененного сообщения.

Структура описана ниже

USER
object

Данные автора сообщения. Может отсутствовать или быть пустым.

Структура описана ниже

Параметр BOT

Параметр
тип

Описание

{BOT_ID}
object

Объект данных конкретного бота. Ключ соответствует идентификатору бота, например 571.

Структура описана ниже

Элемент /

Параметр
тип

Описание

access_token
string

OAuth-токен авторизации бота

expires
timestamp

Момент окончания действия токена

expires_in
integer

Время жизни токена в секундах

scope
string

Скоуп, в рамках которого произошло событие

domain
string

Адрес Битрикс24, на котором произошло событие

server_endpoint
string

Адрес OAuth-сервера для REST-запросов

status
string

Признак состояния приложения на портале

client_endpoint
string

Общий путь для вызовов методов REST API для портала, на котором произошло событие

member_id
string

Уникальный идентификатор Битрикс24

refresh_token
string

OAuth-токен продления авторизации бота

user_id
integer

Идентификатор пользователя-бота

client_id
string

Идентификатор приложения, выданный при регистрации

application_token
string

Токен приложения

AUTH
object

Параметры авторизации бота в формате auth.

Структура описана ниже

BOT_ID
integer

Идентификатор бота

BOT_CODE
string

Символьный код бота

Параметр PARAMS

Параметр
тип

Описание

ID
integer

Идентификатор сообщения

CHAT_ID
integer

Идентификатор чата

AUTHOR_ID
integer

Идентификатор автора сообщения

MESSAGE
string

Текст сообщения после изменения.

В групповом чате текст передается без BB-кода упоминания бота

MESSAGE_TYPE
string

Тип сообщения

Возможные значения:

  • P — private, личный чат
  • C — group chat, групповой чат
  • O — open chat, открытый чат
  • L — open line, чат открытой линии
  • S — system/notify, системное уведомление
  • N — channel, канал
  • J — open channel, открытый канал
  • T — comment thread, ветка комментариев
  • A — copilot chat, чат CoPilot
  • B — collab, коллаб
  • X — external, внешний чат

CHAT_AUTHOR_ID
integer

Идентификатор владельца чата

CHAT_ENTITY_TYPE
string

Тип объекта, к которому привязан чат

CHAT_ENTITY_ID
string

Идентификатор объекта, к которому привязан чат

CHAT_ENTITY_DATA_1
string

Дополнительные данные объекта чата — поле 1

CHAT_ENTITY_DATA_2
string

Дополнительные данные объекта чата — поле 2

CHAT_ENTITY_DATA_3
string

Дополнительные данные объекта чата — поле 3

FROM_USER_ID
integer

Идентификатор отправителя сообщения. Поле заполняется для личного чата

TO_USER_ID
integer

Идентификатор получателя.

В личном чате это идентификатор бота, в групповом чате — идентификатор пользователя или бота, которому адресовано сообщение.

Значение 0 — всем участникам чата

CHAT_USER_COUNT
integer

Количество участников чата

MENTIONED_LIST
object

Упоминания пользователей в сообщении. Параметр зависит от типа чата, в личном диалоге отсутствует.

Структура описана ниже

PLATFORM_CONTEXT
string

Платформа, из которой отправлено сообщение

MESSAGE_ORIGINAL
string

Исходный текст сообщения с BB-кодом упоминаний. Параметр зависит от типа чата, в личном диалоге отсутствует

DIALOG_ID
string

Идентификатор диалога

MESSAGE_ID
integer

Идентификатор сообщения. Дублирует поле ID

CHAT_TYPE
string

Тип чата.

Возможные значения:

  • P — private, личный чат
  • C — group chat, групповой чат
  • O — open chat, открытый чат
  • L — open line, чат открытой линии
  • S — system/notify, системное уведомление
  • N — channel, канал
  • J — open channel, открытый канал
  • T — comment thread, ветка комментариев
  • A — copilot chat, чат CoPilot
  • B — collab, коллаб
  • X — external, внешний чат

LANGUAGE
string

Язык Битрикс24 по умолчанию

Параметр MENTIONED_LIST

Параметр
тип

Описание

{USER_ID}
integer

Идентификатор пользователя или бота, упомянутого в сообщении

Параметр USER

Параметр
тип

Описание

ID
integer

Идентификатор пользователя

NAME
string

Имя и фамилия пользователя

FIRST_NAME
string

Имя пользователя

LAST_NAME
string

Фамилия пользователя

WORK_POSITION
string

Должность пользователя

GENDER
string

Пол пользователя: M или F

IS_BOT
string

Признак пользователя-бота: Y или N

IS_CONNECTOR
string

Признак пользователя-коннектора: Y или N

IS_NETWORK
string

Признак внешнего сетевого пользователя: Y или N

IS_EXTRANET
string

Признак экстранет-пользователя: Y или N

Параметр auth

Обязательные параметры отмечены *

Название
тип

Описание

access_token
string

Токен авторизации OAuth 2.0

expires_in
integer

Время в секундах до истечения срока действия токена

scope*
string

Скоуп, в рамках которого произошло событие

domain*
string

Адрес Битрикс24, на котором произошло событие

server_endpoint*
string

Адрес сервера авторизации Битрикс24, необходимый для обновления токенов OAuth 2.0

status*
string

Статус приложения, подписавшегося на это событие:

client_endpoint*
string

Общий путь для вызовов методов REST API для Битрикс24, на котором произошло событие

member_id*
string

Идентификатор Битрикс24, на котором произошло событие

refresh_token
string

Токен продления авторизации OAuth 2.0

application_token*
string

Токен для безопасной обработки событий

Токены авторизации не всегда передаются в обработчик события. Если хит, инициировавший событие, не удалось привязать к конкретному пользователю Битрикс24, токены не передаются. Обязательно проверяйте содержимое ключа auth в коде.

Рекомендуем хранить токены, полученные ранее при установке приложения. Используйте их при работе с интерфейсом приложения в виде встроек, виджетов и так далее.

Продолжите изучение