- Модуль: 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;
}