public void Test_GetAccessToken(string Code) { //Arrange Uri FhirGatewayEndpoint = new Uri("https://apinams.ehealthvendortest.health.gov.au"); var TokenRequest = new AccessTokenRequest() { Client_id = "28198d27-c475-4695-83d3-1f1f8256e01b", Client_secret = "1c73a74b-45fc-4ee4-a400-15a398e46143", Code = Code }; FhirApi Api = new FhirApi(FhirGatewayEndpoint); //Act TokenResponse TokenResponse = Api.GetAccessToken(TokenRequest); //Assert Assert.Equal(TokenResponse.StatusCode, System.Net.HttpStatusCode.OK); Assert.NotNull(TokenResponse.RefreshToken); Assert.NotNull(TokenResponse.AccessToken); Assert.NotNull(TokenResponse.AccessExpires); Assert.NotNull(TokenResponse.RefreshExpires); Assert.NotNull(TokenResponse.Scope); Assert.NotNull(TokenResponse.TokenType); Assert.Null(TokenResponse.ErrorResponse); }
public bool GetAccessToken() { if (!string.IsNullOrWhiteSpace(CurrectUserAccount.AuthorisationCode)) { FhirApi FhirApi = new FhirApi(FhirGatewayEndpoint); var AccessTokenRequest = new AccessTokenRequest(); AccessTokenRequest.Client_id = ApplicationStore.App_id; AccessTokenRequest.Client_secret = ApplicationStore.App_secret; AccessTokenRequest.Code = CurrectUserAccount.AuthorisationCode; TokenResponse TokenResponse = FhirApi.GetAccessToken(AccessTokenRequest); if (TokenResponse.StatusCode == System.Net.HttpStatusCode.OK) { this.CurrectUserAccount.AccessExpires = TokenResponse.AccessExpires; this.CurrectUserAccount.AccessToken = TokenResponse.AccessToken; this.CurrectUserAccount.RefreshExpires = TokenResponse.RefreshExpires; this.CurrectUserAccount.RefreshToken = TokenResponse.RefreshToken; this.CurrectUserAccount.Scope = TokenResponse.Scope; if (ApplicationStore.UserList.SingleOrDefault(x => x.Username == CurrectUserAccount.Username) == null) { ApplicationStore.UserList.Add(this.CurrectUserAccount); SaveApplicationStore(); } return(true); } else { if (TokenResponse.ErrorResponse != null) { this.ErrorMessage = $"Access Token request failed with message: Http Status: {TokenResponse.StatusCode.ToString()}, Error: {TokenResponse.ErrorResponse.Error}, ErrorMessage: {TokenResponse.ErrorResponse.Description}"; } else { this.ErrorMessage = $"Access Token request failed with no error message returned message, http status was: {TokenResponse.StatusCode.ToString()}"; } return(false); } } else { throw new FormatException($"No CurrectUserAccount.AuthorisationCode found for access token request."); } }
static void Main(string[] args) { Console.WriteLine("HTTP Client"); //MyGov login widget page URL //https://apinams.ehealthvendortest.health.gov.au/api/oauth/authorize/login?client_id=28198d27-c475-4695-83d3-1f1f8256e01b&response_type=code&redirect_uri=https://localhost/oauth_callback&scope=https://localhost:8090/pcehr+offline_access //MyGov Details //User Name: VH429777 //Password: Welcome123 //Secret: //1) What is the name of the first street I lived in? //Answer: street //2) What was the model of the car I learnt to drive in? //Answer: car //3) What was my favourite subject at school? //Answer: subject Uri FhirGatewayEndpoint = new Uri("https://apinams.ehealthvendortest.health.gov.au"); var TokenRequest = new AccessTokenRequest() { Client_id = "28198d27-c475-4695-83d3-1f1f8256e01b", Client_secret = "1c73a74b-45fc-4ee4-a400-15a398e46143", Code = "Q9O6sy0XTiEI5U8xc0xmVNzKY9j4aZ" }; FhirApi Api = new FhirApi(FhirGatewayEndpoint); TokenResponse TokenResponse = Api.GetAccessToken(TokenRequest); if (TokenResponse.StatusCode == System.Net.HttpStatusCode.OK) { Console.WriteLine($"HttpStatus: {TokenResponse.StatusCode.ToString()}"); Console.WriteLine($"AccessToken: {TokenResponse.AccessToken}"); Console.WriteLine($"RefreshToken: {TokenResponse.RefreshToken}"); Console.ReadKey(); } else { Console.WriteLine($"HttpStatus: {TokenResponse.StatusCode.ToString()}"); Console.WriteLine($"Error: {TokenResponse.ErrorResponse.Error}"); Console.WriteLine($"Description: {TokenResponse.ErrorResponse.Description}"); Console.ReadKey(); } //Client.ContentType = "application/x-www-form-urlencoded"; //HttpResponseMessage response; //response = Client.PostFormUrlEncodedContent(RequestAccessTokenQuery, RequestParametersList).Result; ////Client.Accept = "application/fhir+xml"; //string test2 = response.Content.ReadAsStringAsync().Result; //string StatusCode = response.StatusCode.ToString(); //Console.WriteLine("Http Status: " + StatusCode); //Console.Write(test); //Console.ReadKey(); ////"access_token": "EEMhwH8qjmD23G4bz3itub0np2mXXMtnHtHiDhLGDdmSXQQ20HE58v", //"token_type": "Bearer", //"expires_in": "15552000", //"refresh_token": "cUOlXUQuG7dkBPJBxDubnCah61xT3apsXYXGhHG7ahRwbe", //"scope": "https://localhost:8090/pcehr" //GET Example //HttpResponseMessage response; //response = Client.Get("]/api/oauth/token").Result; //Client.ContentType = "application/x-www-form-urlencoded"; //Client.Accept = "application/fhir+xml"; //string test = response.Content.ReadAsStringAsync().Result; //string StatusCode = response.StatusCode.ToString(); //Console.WriteLine("Http Status: " + StatusCode); //Console.Write(test); //Console.ReadKey(); }