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

Веб-мессенджер

Описание

Как инструмент номер один, Веб-мессенджер дополняет привычные способы общения - телефон и электронную почту.

Интерактивный инструмент – Веб-мессенджер позволяет эффективно общаться и получать информацию прямо через браузер:

  • пользователи портала общаются посредством мгновенных персональных сообщений (как в интернет-мессенджерах);
  • список контактов формируется согласно структуре компании;
  • центр нотификации выводит информацию о новых событиях на портале;
  • индицируется присутствие сотрудника на портале (онлайн);
  • присутствующие на портале сотрудники ведут «живой» диалог;
  • уведомления о новых сообщениях появляются на любой странице портала;
  • не работающим в текущий момент на портале пользователям сообщения доставляются позже;
  • ведется архив сообщений диалогов пользователей;
  • просмотреть личную переписку сотрудник также может из профиля другого пользователя («Показать переписку»).

Использование Веб-мессенджера отменяет необходимость установки в компании XMPP серверов и специальных Jabber клиентов. Реализован мессенджер с использованием всех инноваций современных браузеров (используется HTML5, local storage и т.д.).

Примеры использования

Для добавления сообщения в чат, необходимо знать ID нужного чата и выполнить метод отправки сообщения в чат. Для получения ID нужно, нужно в нужном чате отправить сообщение /getChatId и посмотреть номер чата:

В нужном месте кода, вызвать следующие API:

if (CModule::IncludeModule('im'))
{
   $ar = Array(
      "TO_CHAT_ID" => 21441, // ID чата
      "FROM_USER_ID" => 1, // ID пользователя состоящего в чате
      "MESSAGE"     => "Сообщение от пользователя", // Произвольный текст
   );
   CIMChat::AddMessage($ar);
}

Результат:

Отправить системное сообщение:

if (CModule::IncludeModule('im'))
{
   $ar = Array(
      "TO_CHAT_ID" => 21441, // ID чата
      "FROM_USER_ID" => 0, 
      "SYSTEM" => Y, 
      "MESSAGE"  => "Системное сообщение", // Произвольный текст
   );
   CIMChat::AddMessage($ar);
}

Создание чата

<?php 
if (\Bitrix\Main\Loader::includeModule('im')) 
{ 
    $pic = $_SERVER['DOCUMENT_ROOT'] . '/test.jpg'; 
    $avatarId = \CFile::SaveFile(\CFile::MakeFileArray($pic), 'im'); 
    $chat = new \CIMChat; 
    $chat->Add(array( 
        'TITLE' => 'Тестовый чат', 
        'DESCRIPTION' => 'Описание тестового чата', 
        'COLOR' => 'RED',//цвет 
        'TYPE' => IM_MESSAGE_OPEN,//тип чата 
        'AUTHOR_ID' => '1',//владелец чата 
        'AVATAR_ID' => $avatarId,//аватарка чата 
    )); 
}
//TYPE = IM_MESSAGE_CHAT – закрытый чат
//список доступных цветов: \Bitrix\Im\Color::getSafeColors()

Приглашение в чат

<?php 
//приглашение в чат
if (\Bitrix\Main\Loader::includeModule('im'))  { 
    $chat = new \CIMChat; 
    $chat->AddUser($chatId, $userId, $hideHistory = null, $skipMessage = false); 
//userId - может быть массивом пользователя; 
//hideHistory - скрыть сообщения которые были до момента входа, true/false - по умолчанию берется то значение, 
//которое выставлено в настройках модуля, для Б24 по умолчанию скрыть, для БУС показать. 
//skipMessage - пропустить стандартное сообщение о включении участника, по умолчанию false. Например для того
// что бы опубликовать самому какое то сообщение.
}

//поиск чата по определенным параметрам
if (\Bitrix\Main\Loader::includeModule('im'))  { 
    $chat = new \CIMChat; 
    $res = \Bitrix\Im\chatTable::getList(array( 
        'filter' => array( 
            'TITLE' => '%красный%' 
        ) 
    )); 
    if ($row = $res->fetch()) 
    { 
    } 
}

Написать в чат

<?php 
if (\Bitrix\Main\Loader::includeModule('im'))  { 
    \CIMChat::AddMessage(array( 
        'FROM_USER_ID' => 1,  //id автора
        'TO_CHAT_ID' => 19,  //id чата
        'MESSAGE' => 'Пишу в чат #19' 
    )); }
if (\Bitrix\Main\Loader::includeModule('im'))  { 
    \CIMChat::AddSystemMessage(array( 
        'FROM_USER_ID' => 1,  //id автора
        'CHAT_ID' => 19,  //id чата
        'MESSAGE' => 'Шлю системное уведомление' 
    )); 
} 

Написать в чат лично

<?php 
if (\Bitrix\Main\Loader::includeModule('im'))  
{  
    \CIMMessage::Add(array(  
        'FROM_USER_ID' => 1,  
        'TO_USER_ID' => 21, 
        'MESSAGE' => 'Пишу в чат тебе', 
    ));  
}


© «Битрикс», 2001-2021, «1С-Битрикс», 2021
Наверх