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

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-2020, «1С-Битрикс», 2020
Наверх