@nexus7777

Как правильно отправлять сообщения через открытую линию в Битрикс24?

После отправки сообщения из ОЛ во внешнюю систему у сообщения, через минуту, появляется статус "Сообщение не доставлено". После обновления страницы с чатом статус пропадает.

6347c2167fa25073525691.png

Использую пример из этого кейса https://dev.1c-bitrix.ru/rest_help/imconnector/cas...

Метод "imconnector.send.status.delivery" присутствует, но он не решает эту проблему. Или его нужно вызывать повторно в какой-то момент?
  • Вопрос задан
  • 381 просмотр
Решения вопроса 1
Для потомков
$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
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы