public function getAccessToken()
{
if (!$this->accessToken) {
$this->accessToken = $this->loadToken(self::TOKEN_TYPE_ACCESS);
}
if (!$this->accessToken || $this->accessToken->expireDate <= time()) {
$grantType = 'refresh_token';
$resource = self::URL_CORE_WINDOWS . '/';
$token = $this->getRefreshToken();
$this->accessToken = $this->getToken($grantType, $resource, $token->token);
$this->environment->keychain(\SERVER_PLATFORMS::AZURE)->properties->saveSettings([CloudCredentialsProperty::AZURE_ACCESS_TOKEN => $this->accessToken->token, CloudCredentialsProperty::AZURE_ACCESS_TOKEN_EXPIRE => $this->accessToken->expireDate]);
}
return $this->accessToken;
}