internal virtual async Task<Tuple<string, TimeSpan>> GetAccessTokenAsync()
{
var param = new Dictionary<string, string>
{
["grant_type"] = "client_credentials",
["client_id"] = ApplicationSettings.AzureClientId,
["client_secret"] = ApplicationSettings.AzureClientSecret,
["scope"] = "http://api.microsofttranslator.com",
};
using (var request = new HttpRequestMessage(HttpMethod.Post, OAuthEndpoint))
using (var postContent = new FormUrlEncodedContent(param))
{
request.Content = postContent;
using (var response = await this.Http.SendAsync(request).ConfigureAwait(false))
{
var responseBytes = await response.Content.ReadAsByteArrayAsync()
.ConfigureAwait(false);
return ParseOAuthCredential(responseBytes);
}
}
}