• Модуль: socialservices
  • Путь к файлу: ~/bitrix/modules/socialservices/classes/general/bitrix24.php
  • Класс: CSocServBitrixOAuth
  • Вызов: CSocServBitrixOAuth::getStorageToken
public function getStorageToken()
{
	$accessToken = null;
	$userId = intval($this->userId);
	if($userId > 0)
	{
		$dbSocservUser = UserTable::getList([
			'filter' => [
				'=USER_ID' => $userId,
				'=XML_ID' => $this->appID,
				"=EXTERNAL_AUTH_ID" => "Bitrix24OAuth",
				'=PERSONAL_WWW' => $this->portalURI
			],
			'select' => ["OATOKEN", "REFRESH_TOKEN", "OATOKEN_EXPIRES", "OASECRET"]
		]);
		if($arOauth = $dbSocservUser->fetch())
		{
			$accessToken = $arOauth["OATOKEN"];
			if(
				empty($accessToken)
				|| (
					(intval($arOauth["OATOKEN_EXPIRES"]) > 0)
					&& (intval($arOauth["OATOKEN_EXPIRES"] < intval(time())))
				)
			)
			{
				if(isset($arOauth['REFRESH_TOKEN']))
				{
					$this->getEntityOAuth()->getNewAccessToken($arOauth['REFRESH_TOKEN'], $userId, true);
				}
				if(($accessToken = $this->getEntityOAuth()->getToken()) === false)
				{
					return null;
				}

				$this->getEntityOAuth()->saveDataDB();
			}
		}
	}

	return $accessToken;
}