OnUpdateMessageCustom
Описание и параметры
OnUpdateMessageCustom - изменение сообщения из Открытой Линии. Обязательно нужно вызвать в ответ метод sendStatusDelivery иначе в мессенджере сообщение будет значиться как измененное.
В событие приходят следующие параметры:
| Параметр | Описание |
|---|---|
| CONNECTOR | ID коннектора, по нему проверяете, касается ли событие вас. |
| LINE | ID линии |
| DATA | Массив массивов, описывающих сообщение:
array ( 'im' => array ( //ID чата в рамках битрикс24 'chat_id' => '845', //ID сообщения в рамках битрикс24 'message_id' => '344029', ), 'message' => array ( //Массив ID редактируемых сообщений во внешней системе //(в sendStatusDelivery должны вернуться новые ID, даже если они такие же) //Предусмотреть вариант, когда может прийти одно значение! 'id' => array ( 0 => '99', ), //Новый текст сообщения 'text' => '[b]Сергей "Покоев":[/b][br] Тестовое сообщение 55', ), 'chat' => array ( //ID чата во внешней системе 'id' => '2', ), ); |
Пример
\Bitrix\Main\EventManager::getInstance()->addEventHandler("imconnector", "OnUpdateMessageCustom", Array("Message", "OnUpdateMessageCustomHandler"));
class Message
{
function OnUpdateMessageCustomHandler(\Bitrix\Main\Event $event)
{
$connector = $event->getParameter('CONNECTOR');
$line = $event->getParameter('LINE');
$data = $event->getParameter('DATA');
foreach ($data as $message)
{
$statusDelivery[]= array(
'im' => $message['im'],
'message' => array(
'id' => array(5),
),
'chat' => array(
'id' => $message['chat']['id']
),
);
}
if(!empty($statusDelivery))
{
\Bitrix\ImConnector\CustomConnectors::sendStatusDelivery($connector, $line,
$statusDelivery);
}
//test
define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"]."/log.txt");
AddMessage2Log(var_export(array('$connector' => $connector, '$line' => $line,'$data' => $data),1), 'SendMessage');
//END test
}
}
© «Битрикс», 2001-2025, «1С-Битрикс», 2025