• Модуль: socialservices
  • Путь к файлу: ~/bitrix/modules/socialservices/classes/general/bitrix24.php
  • Класс: CBitrixOAuthInterface
  • Вызов: CBitrixOAuthInterface::saveDataDB
public function saveDataDB()
{
	global $USER;

	$dbSocUser = UserTable::getList([
		'filter' => [
			'=XML_ID' => $this->appID,
			'=PERSONAL_WWW' => $this->portalURI,
			'=EXTERNAL_AUTH_ID' => 'Bitrix24OAuth'
		],
		'select' => ['ID']
	]);

	if($USER->IsAuthorized())
	{
		$arFields = array(
			'PERSONAL_WWW' => $this->portalURI,
			'XML_ID' => $this->appID,
			'EXTERNAL_AUTH_ID' => static::SERVICE_ID,
			'USER_ID' => $USER->GetID(),
			'OATOKEN' => $this->access_token,
			'OATOKEN_EXPIRES' => $this->accessTokenExpires,
			'OASECRET' => $this->getSignatureKey(),
			'LOGIN' => $this->appID,
		);

		if($this->refresh_token <> '')
		{
			$arFields['REFRESH_TOKEN'] = $this->refresh_token;
		}

		if($arUser = $dbSocUser->fetch())
		{
			$result = UserTable::update($arUser["ID"], $arFields);
			return $result->isSuccess() ? $arUser["ID"] : false;
		}
		else
		{
			$result = UserTable::add($arFields);
			return $result->isSuccess() ? $result->getId() : false;
		}
	}
	return true;
}