Example #1
0
        public async Task <(string AccessToken, string RefreshToken)> GetAccessTokenByRefreshAsync(SageApplicationType applicationType)
        {
            var auth = await GetAuthConfigAsync(applicationType);

            var httpClient = CreateHttpClient();

            AddDefaultHeaders(httpClient);
            var data    = SageOneUtils.ConvertPostParams(SageOneUtils.GetRefreshTokenPostData(auth.ClientId, auth.ClientSecret, auth.RefreshToken));
            var content = new StringContent(data);

            var uri      = new Uri(_settings.AccessTokenURL);
            var response = await httpClient.PostAsync(uri, content);

            //var responseObj = await HandleResponse(response);
            var responseContent = await response.Content.ReadAsStringAsync();

            JObject jObject       = JObject.Parse(responseContent);
            string  access_token  = (string)jObject["access_token"];
            string  refresh_token = (string)jObject["refresh_token"];

            return(access_token, refresh_token);
        }
Example #2
0
        public async Task <(string AccessToken, string RefreshToken)> GetAccessTokenAsync(SageApplicationType applicationType, string code)
        {
            var auth = await GetAuthConfigAsync(applicationType);

            var httpClient = CreateHttpClient();

            AddDefaultHeaders(httpClient);
            var data    = SageOneUtils.ConvertPostParams(SageOneUtils.GetAccessTokenPostData(code, auth.ClientId, auth.ClientSecret, auth.CallbackURL));
            var content = new StringContent(data);

            var uri      = new Uri(_settings.AccessTokenURL);
            var response = await httpClient.PostAsync(uri, content);

            if (response.IsSuccessStatusCode)
            {
                var responseContent = await response.Content.ReadAsStringAsync();

                JObject jObject       = JObject.Parse(responseContent);
                string  access_token  = (string)jObject["access_token"];
                string  refresh_token = (string)jObject["refresh_token"];
                return(access_token, refresh_token);
            }
            throw new SageException(response?.StatusCode.ToString(), await response?.Content?.ReadAsStringAsync());
        }