Веб-мессенджер
Описание
Как инструмент номер один, Веб-мессенджер дополняет привычные способы общения - телефон и электронную почту.
Интерактивный инструмент – Веб-мессенджер позволяет эффективно общаться и получать информацию прямо через браузер:
- пользователи портала общаются посредством мгновенных персональных сообщений (как в интернет-мессенджерах);
- список контактов формируется согласно структуре компании;
- центр нотификации выводит информацию о новых событиях на портале;
- индицируется присутствие сотрудника на портале (онлайн);
- присутствующие на портале сотрудники ведут «живой» диалог;
- уведомления о новых сообщениях появляются на любой странице портала;
- не работающим в текущий момент на портале пользователям сообщения доставляются позже;
- ведется архив сообщений диалогов пользователей;
- просмотреть личную переписку сотрудник также может из профиля другого пользователя («Показать переписку»).
Использование Веб-мессенджера отменяет необходимость установки в компании 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' => 'Пишу в чат тебе',
));
}