- Модуль: 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;
}