• Модуль: imbot
  • Путь к файлу: ~/bitrix/modules/imbot/lib/bot/network.php
  • Класс: BitrixImBotBotNetwork
  • Вызов: Network::registerConnector
static function registerConnector($lineId, $fields = [])
{
	$send = [];
	$send['LINE_ID'] = (int)$lineId;
	if ($send['LINE_ID'] <= 0)
	{
		return false;
	}
	if (!MainLoader::includeModule('imopenlines'))
	{
		return false;
	}
	/** @var BitrixImOpenLinesConfig $configManager */
	$configManager = ServiceLocator::getInstance()->get('ImOpenLines.Config');
	$config = $configManager->get($lineId);
	if (!$config)
	{
		return false;
	}

	if (!empty($fields['NAME']) && trim($fields['NAME']) != '')
	{
		$send['LINE_NAME'] = trim($fields['NAME']);
	}
	else
	{
		$send['LINE_NAME'] = $config['LINE_NAME'];
	}

	if (empty($send['FIRST_MESSAGE']))
	{
		$send['FIRST_MESSAGE'] = $config['WELCOME_MESSAGE_TEXT'];
	}

	$send['LINE_DESC'] = isset($fields['DESC']) ? trim($fields['DESC']) : '';
	$send['FIRST_MESSAGE'] = isset($fields['FIRST_MESSAGE']) ? $fields['FIRST_MESSAGE'] : '';

	$send['AVATAR'] = '';
	if (!empty($fields['AVATAR']) && (int)$fields['AVATAR'] > 0)
	{
		$fields['AVATAR'] = (int)$fields['AVATAR'];
		$fileTmp = CFile::resizeImageGet(
			$fields['AVATAR'],
			['width' => 300, 'height' => 300],
			BX_RESIZE_IMAGE_EXACT,
			false,
			false,
			true
		);
		if ($fileTmp['src'])
		{
			$send['AVATAR'] = mb_substr($fileTmp['src'], 0, 4) == 'http'
				? $fileTmp['src']
				: ImBotHttp::getServerAddress().$fileTmp['src'];
		}
	}

	$send['ACTIVE'] = isset($fields['ACTIVE']) && $fields['ACTIVE'] == 'N'? 'N': 'Y';
	$send['HIDDEN'] = isset($fields['HIDDEN']) && $fields['HIDDEN'] == 'Y'? 'Y': 'N';

	$http = self::instanceHttpClient();
	$result = $http->query(
		self::COMMAND_CONNECTOR_REGISTER,
		$send,
		true
	);
	if (isset($result['error']))
	{
		self::$lastError = new ImBotError(__METHOD__, $result['error']['code'], $result['error']['msg']);
		return false;
	}
	if ($result['result'])
	{
		$result = [
			'CODE' => $result['result'],
			'NAME' => $send['LINE_NAME'],
			'DESC' => $send['LINE_DESC'],
			'FIRST_MESSAGE' => $send['FIRST_MESSAGE'],
			'AVATAR' => ($fields['AVATAR'] ?? ''),
			'ACTIVE' => $send['ACTIVE'],
			'HIDDEN' => $send['HIDDEN'],
		];
	}

	return $result;
}