- Модуль: socialservices
- Путь к файлу: ~/bitrix/modules/socialservices/classes/general/bitrix24.php
- Класс: CBitrixOAuthInterface
- Вызов: CBitrixOAuthInterface::getNewAccessToken
public function getNewAccessToken($refreshToken, $userId = 0, $save = false, $scope = array())
{
if($this->appID == false || $this->appSecret == false)
{
return false;
}
if($scope != null)
{
$this->addScope($scope);
}
$httpClient = new BitrixMainWebHttpClient(array(
"socketTimeout" => $this->httpTimeout
));
$result = $httpClient->get($this->portalURI."/oauth/token/".
"?client_id=".urlencode($this->appID).
"&grant_type=refresh_token".
"&client_secret=".$this->appSecret.
"&refresh_token=".$refreshToken.
'&scope='.$this->getScopeEncode());
$arResult = BitrixMainWebJson::decode($result);
if(isset($arResult["access_token"]) && $arResult["access_token"] <> '')
{
$this->access_token = $arResult["access_token"];
$this->accessTokenExpires = $arResult["expires_in"];
$this->member_id = $arResult["member_id"];
if(isset($arResult["refresh_token"]) && $arResult["refresh_token"] <> '')
{
$this->refresh_token = $arResult["refresh_token"];
}
if($save && intval($userId) > 0)
{
CUserOptions::SetOption('socialservices', 'bitrix24_task_planer_gadget_token', $this->access_token, false, $userId);
CUserOptions::SetOption('socialservices', 'bitrix24_task_planer_gadget_token_expire', $this->accessTokenExpires + time(), false, $userId);
CUserOptions::SetOption('socialservices', 'bitrix24_task_planer_gadget_refresh_token', $this->refresh_token, false, $userId);
}
return true;
}
return false;
}