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

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

Описание

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

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

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

Использование Веб-мессенджера отменяет необходимость установки в компании 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,//аватарка чата 
		'USERS' => false,
	)); 
}
//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-2024, «1С-Битрикс», 2024