• Модуль: socialservices
  • Путь к файлу: ~/bitrix/modules/socialservices/classes/general/google.php
  • Класс: CSocServGoogleOAuth
  • Вызов: CSocServGoogleOAuth::getStorageToken
public function getStorageToken()
{
	$accessToken = null;
	$userId = intval($this->userId);
	if($userId > 0)
	{
		$dbSocservUser = BitrixSocialservicesUserTable::getList([
			'filter' => ['=USER_ID' => $userId, "=EXTERNAL_AUTH_ID" => static::ID],
			'select' => ["OATOKEN", "REFRESH_TOKEN", "OATOKEN_EXPIRES"]
		]);
		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;
				}
			}
		}
	}

	return $accessToken;
}