• Модуль: imbot
  • Путь к файлу: ~/bitrix/modules/imbot/lib/bot/network.php
  • Класс: BitrixImBotBotNetwork
  • Вызов: Network::clientMessageAdd
static function clientMessageAdd(array $fields)
{
	$user = self::getUserInfo((int)$fields['USER_ID']);

	$portalTariff = 'box';
	$portalTariffLevel = 'paid';
	$userLevel = self::USER_LEVEL_ADMIN;
	$portalType = 'PRODUCTION';
	$portalTariffName = '';
	$portalCreateTime = '';
	$demoStartTime = 0;
	$botVersion = '';

	if (MainLoader::includeModule('bitrix24'))
	{
		$portalTariff = CBitrix24::getLicenseType();
		$portalTariffName = CBitrix24::getLicenseName();
		$portalCreateTime = CBitrix24::getCreateTime();

		if (CBitrix24::isDemoLicense())
		{
			$portalTariff = CBitrix24::getLicenseType(CBitrix24::LICENSE_TYPE_PREVIOUS);
			$portalTariff = $portalTariff.'+demo';
			$portalTariffName = CBitrix24::getLicenseName("", CBitrix24::LICENSE_TYPE_PREVIOUS);

			$demoStartTime = (int)Option::get("bitrix24", "DEMO_START");
		}

		if (!$portalCreateTime)
		{
			$portalCreateTime = time();
		}

		if (CBitrix24::isIntegrator($fields['USER_ID']))
		{
			$userLevel = self::USER_LEVEL_INTEGRATOR;
		}
		elseif (CBitrix24::isPortalAdmin($fields['USER_ID']))
		{
			$userLevel = self::USER_LEVEL_ADMIN;
		}
		else
		{
			$userLevel = self::USER_LEVEL_REGULAR;
		}

		$portalType = self::getPortalStage();
		$portalTariffLevel = Support24::getSupportLevel();
	}
	else
	{
		$botVersion = MainModuleManager::getVersion('imbot');
	}

	$user = array_merge($user, [
		'TARIFF' => $portalTariff,
		'TARIFF_NAME' => $portalTariffName,
		'TARIFF_LEVEL' => $portalTariffLevel,
		'GEO_DATA' => self::getUserGeoData(),
		'REGISTER' => $portalCreateTime,
		'DEMO' => $demoStartTime,
		'USER_LEVEL' => $userLevel,
		'PORTAL_TYPE' => $portalType,
		'BOT_VERSION' => $botVersion,
	]);

	$messageId = is_array($fields['MESSAGE']) ? (int)$fields['MESSAGE']['ID'] : 0;
	$messageText = is_array($fields['MESSAGE']) ? (string)$fields['MESSAGE']['TEXT'] : (string)$fields['MESSAGE'];

	$http = self::instanceHttpClient();
	$response = $http->query(
		'clientMessageAdd',
		[
			'BOT_ID' => $fields['BOT_ID'],
			'DIALOG_ID' => $fields['DIALOG_ID'],
			'MESSAGE_ID' => $messageId,
			'MESSAGE_TEXT' => $messageText,
			'FILES' => $fields['FILES'] ?? null,
			'ATTACH' => $fields['ATTACH'] ?? null,
			'PARAMS' => $fields['PARAMS'] ?? null,
			'USER' => $user,
			'FILES_RAW' => $fields['FILES_RAW'] ?? null,
			'EXTRA_DATA' => $fields['EXTRA_DATA'] ?? null,
		]
	);

	return $response;
}