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); }
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()); }