- Модуль: socialservices
- Путь к файлу: ~/bitrix/modules/socialservices/classes/general/liveidoauth.php
- Класс: CLiveIDOAuthInterface
- Вызов: CLiveIDOAuthInterface::getNewAccessToken
public function getNewAccessToken($refreshToken, $userId = 0, $save = false)
{
if($this->appID == false || $this->appSecret == false)
return false;
$result = CHTTP::sPostHeader(self::TOKEN_URL, array(
"refresh_token"=>$refreshToken,
"client_id"=>$this->appID,
"client_secret"=>$this->appSecret,
"grant_type"=>"refresh_token",
), array(), $this->httpTimeout);
$arResult = CUtil::JsObjectToPhp($result);
if(isset($arResult["access_token"]) && $arResult["access_token"] <> '')
{
$this->access_token = $arResult["access_token"];
$this->accessTokenExpires = $arResult["expires_in"];
if($save && intval($userId) > 0)
{
$dbSocservUser = BitrixSocialservicesUserTable::getList([
'filter' => [
'=USER_ID' => intval($userId),
"=EXTERNAL_AUTH_ID" => 'LiveIDOAuth'
],
'select' => ["ID"]
]);
if($arOauth = $dbSocservUser->fetch())
BitrixSocialservicesUserTable::update($arOauth["ID"], array("OATOKEN" => $this->access_token, "OATOKEN_EXPIRES" => time() + $this->accessTokenExpires));
}
return true;
}
return false;
}