• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/sync/google/pushmanager.php
  • Класс: BitrixCalendarSyncGooglePushManager
  • Вызов: PushManager::makeChannelParams
private function makeChannelParams($uniqId, string $type): array
{
	if (defined('BX24_HOST_NAME') && BX24_HOST_NAME)
	{
		$externalUrl = GoogleApiSync::EXTERNAL_LINK . BX24_HOST_NAME;
	}
	else
	{
		$request = Context::getCurrent()->getRequest();
		if (defined('SITE_SERVER_NAME') && SITE_SERVER_NAME)
		{
			$host = SITE_SERVER_NAME;
		}
		else
		{
			$host = Option::get('main', 'server_name', $request->getHttpHost());
		}

		$externalUrl = 'https://' . $host . '/bitrix/tools/calendar/push.php';
	}

	return [
		'id' => $type . '_' . $this->userId.'_'.md5($uniqId. time()),
		'type' => 'web_hook',
		'address' => $externalUrl,
		'expiration' => (time() + GoogleApiSync::CHANNEL_EXPIRATION) * 1000,
	];
}