• Модуль: seo
  • Путь к файлу: ~/bitrix/modules/seo/lib/controller/business/extension.php
  • Класс: BitrixSeoControllerBusinessExtension
  • Вызов: Extension::installAction
public function installAction($engineCode, $setup, $config): AjaxJson
{
	$response = null;
	try
	{
		if (is_string($engineCode) && is_array($setup) && is_array($config))
		{
			$meta = BusinessSuiteServiceMetaData::create()
				->setService($service = UtilsServiceFactory::getServiceByEngineCode($engineCode))
				->setEngineCode($engineCode)
				->setType($service::getTypeByEngine($engineCode));

			$serviceContainer = ServiceAdapter::createServiceWrapperContainer()->setMeta($meta);

			$response = AjaxJson::createSuccess([
					'authUrl' => $serviceContainer->getAuthAdapter($meta->getType())
						->setConfig($config = FacebookConfig::loadFromArray($config))
						->setSetup($setup = FacebookSetup::loadFromArray($setup))
						->setInstalls(FacebookInstalls::load())
						->getAuthUrl()
				]);
			$response = ($setup->save()? $response : AjaxJson::createError(null,[]));
		}
	}
	catch (BusinessSuiteExceptionConfigException $exception)
	{
		$handler = BusinessSuiteExceptionConfigExceptionHandler::handle($exception);
		$response = AjaxJson::createError($handler->getErrorCollection(),$handler->getCustomData());
	}
	catch (Throwable $exception)
	{
		$response = AjaxJson::createError();
	}
	finally
	{
		return $response;
	}
}