Для потомков
$chat = CRest::call(
'imconnector.send.status.delivery',
[
"CONNECTOR" => "connector_name",
"LINE" => line_id,
"MESSAGES" => [
[
"im" => ["chat_id" => "XXXX", "message_id" => "XXXXX"],
"message" => ["id" => "XXX"],
"chat" => ["id" => "XXX"]
]
]
]
);
echo '<pre>';
var_dump($chat);
echo '</pre>';
Расшифровка:
connector_name - имя коннектора, которое ему было задано при регистрации (берем из imconnector.register => ID)
line_id - идентификатор открытой линии
Массив MESSAGES:
im:
chat_id - идентификатор чата из битрикса (можно найти либо через консоль разработчика (f12), либо с помощью команды /getDialogId в чате)
message_id - идентификатор сообщения в битрикс (можно найти либо через консоль разработчика (f12), либо с помощью метода im.dialog.messages.get)
message:
id - это ID сообщения во внешней системе (в вашем чате), задается при отправке сообщения в методе imconnector.send.messages
chat:
id - это ID чата во внешней системе (в вашем чате), задается при отправке сообщения в методе imconnector.send.messages
В примере из кейса битрикса стоит интервал на запросы каждые 5 секунд - это вариант 1
Можно метод запускать сразу после отправки пользователем стороннего чата сообщения - это вариант 2
Также есть событие OnImConnectorMessageAdd, но в документации указано, что
Событие выбрасывается для полноценных коннекторов таких как Телеграм или ВКонтакте
- это вариант 3