C# httpclientでOAuth 2.0 認証(クライアントクレデンシャルグラント) アクセストークンもらう

string client_id = "hogehoge";				// 提供される情報
string client_secret = "hogehoge_secret";	// 

HttpClient http_client = new HttpClient();

HttpRequestMessage request = new HttpRequestMessage();
request.Method = HttpMethod.Post;
request.RequestUri = new Uri("https://auth-api.api.hogehoge.com/oauth2/");	// クライアントクレデンシャルグラントで使用するエンドポイント

// Basic認証
request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue(
    "Basic",
    Convert.ToBase64String(Encoding.ASCII.GetBytes(client_id + ":" + client_secret)));	

// パラメータ
var parameters = new Dictionary<string, string>()
{
    { "grant_type", "client_credentials" },
    { "param", "hoge" },
};
request.Content = new FormUrlEncodedContent(parameters);

var response = http_client.SendAsync(request);
response.Wait();

string result = response.Result .Content.ReadAsStringAsync().Result;