Документация для разработчиков
Темная тема

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-2024, «1С-Битрикс», 2024