• Модуль: imbot
  • Путь к файлу: ~/bitrix/modules/imbot/lib/service/notifier.php
  • Класс: BitrixImBotServiceNotifier
  • Вызов: Notifier::createChannel
static function createChannel(): Result
{
	$result = new Result;

	/**
	 * @global CMain $APPLICATION
	 */
	global $APPLICATION;

	$classSupport = self::detectSupportBot();
	$adminGroupUsers = self::getAdminGroupUsers();
	$adminGroupUsers[] = $classSupport::getBotId();

	// create group chat
	$chat = new CIMChat(0);

	$chatId = $chat->add([
		'AUTHOR_ID' => $classSupport::getBotId(),
		'USERS' => $adminGroupUsers,
		'TITLE' => self::getChannelName(),
		'TYPE' => IM_MESSAGE_CHAT,
		'ENTITY_TYPE' => self::CHAT_ENTITY_TYPE,
		'ENTITY_ID' => $classSupport::getBotId(),
	]);
	if ($chatId)
	{
		$result->setData(['chatId' => $chatId]);
	}
	else
	{
		/**
		 * @var CApplicationException $error
		 */
		$error = $APPLICATION->getException();
		if ($error)
		{
			$result->addError(new MainError($error->getString(), $error->getId()));
		}
		else
		{
			$result->addError(new MainError(
				'Cannot initiate chat with admin group',
				'ERROR_CHAT_CREATION'
			));
		}
	}

	return $result;
}