• Модуль: imbot
  • Путь к файлу: ~/bitrix/modules/imbot/lib/bot/network.php
  • Класс: BitrixImBotBotNetwork
  • Вызов: Network::sendMessage
static function sendMessage($messageFields)
{
	if (!MainLoader::includeModule('im'))
	{
		return [];
	}

	$userId = 0;
	if (isset($messageFields['TO_USER_ID']))
	{
		$userId = $messageFields['TO_USER_ID'];
	}
	elseif (isset($messageFields['DIALOG_ID']))
	{
		if (preg_match('/^[0-9]+$/i', $messageFields['DIALOG_ID']))
		{
			$userId = $messageFields['DIALOG_ID'];
		}
		elseif (
			$messageFields['DIALOG_ID'] === self::USER_LEVEL_ADMIN
			|| $messageFields['DIALOG_ID'] === self::USER_LEVEL_BUSINESS
		)
		{
			$users = [];
			if ($messageFields['DIALOG_ID'] === self::USER_LEVEL_ADMIN)
			{
				$users = self::getAdministrators();
			}
			elseif ($messageFields['DIALOG_ID'] === self::USER_LEVEL_BUSINESS)
			{
				$users = self::getBusinessUsers();
			}

			$result = [];
			foreach ($users as $userId)
			{
				$messageFields['DIALOG_ID'] = $userId;
				$result = array_merge($result, self::sendMessage($messageFields));
			}

			return $result;
		}
	}

	$messageFields['FROM_USER_ID'] = static::getBotId();

	if (!isset($messageFields['PARAMS'], $messageFields['PARAMS'][self::MESSAGE_PARAM_ALLOW_QUOTE]))
	{
		$messageFields['PARAMS'][self::MESSAGE_PARAM_ALLOW_QUOTE] = 'Y';
	}

	$messageFields['MESSAGE'] = static::replacePlaceholders($messageFields['MESSAGE'], $userId);

	$messageId = CIMMessenger::add($messageFields);
	if ($messageId)
	{
		return [$messageId];
	}

	return [];
}