// API Scope
            string scope = $"{settings.Audience}/.default";

            // Create HTTP client
            using (var httpClient = new HttpClient())
            {
                // Prepare POST request data
                var requestData = new StringContent(
                    $"client_id={Uri.EscapeDataString(ClientId)}&" +
                    $"client_secret={Uri.EscapeDataString(Secret)}&" +
                    $"scope={Uri.EscapeDataString(scope)}&" +
                    "grant_type=client_credentials",
                    Encoding.UTF8,
                    "application/x-www-form-urlencoded");

                // Send POST request to token endpoint
                HttpResponseMessage response = await httpClient.PostAsync(settings.TokenEndpoint, requestData);

                if (response.IsSuccessStatusCode)
                {
                    // Parse the token response
                    var responseBody = await response.Content.ReadAsStringAsync();
                    var tokenResponse = JsonConvert.DeserializeObject(responseBody);

                    var Httpresponse = req.CreateResponse(HttpStatusCode.OK);
                    await Httpresponse.WriteAsJsonAsync(tokenResponse);
                    return Httpresponse;

                }
            }

            //var response = req.CreateResponse(HttpStatusCode.OK);
            //await response.WriteAsJsonAsync(retval);
        }

        public class TokenResponse
        {
            [JsonProperty("access_token")]
            public string AccessToken { get; set; }

            [JsonProperty("expires_in")]
            public int ExpiresIn { get; set; }

            [JsonProperty("token_type")]
            public string TokenType { get; set; }
        }