この記事に含まれているコード サンプルは、これを行う方法を示しています。すべてがどのように組み合わされるかを理解するには、少し掘り下げる必要がありますが、一言で言えば、WebRequest
「POST」メソッドで を使用し、その POST で 4 つの必要な値を渡します。サンプル コードを見ることをお勧めしますが、基本的な要素に絞り込むと、次のようになります。
string request = string.Format("grant_type=client_credentials&client_id={0}&client_secret={1}&scope=http://api.microsofttranslator.com", HttpUtility.UrlEncode(clientId), HttpUtility.UrlEncode(clientSecret));
WebRequest webRequest = WebRequest.Create("https://datamarket.accesscontrol.windows.net/v2/OAuth2-13");
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.Method = "POST";
byte[] bytes = Encoding.ASCII.GetBytes(request);
webRequest.ContentLength = bytes.Length;
using (Stream outputStream = webRequest.GetRequestStream())
{
outputStream.Write(bytes, 0, bytes.Length);
}
using (WebResponse webResponse = webRequest.GetResponse())
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(AdmAccessToken));
//Get deserialized object from JSON stream
AdmAccessToken token = (AdmAccessToken)serializer.ReadObject(webResponse.GetResponseStream());
return token;
}
上記のコードの大部分はprivate AdmAccessToken HttpPost(string DatamarketAccessUri, string requestDetails)
、サンプルのメソッドにあります。
これAdmAccessToken
は、戻り値のプロパティを持つ、サンプルで定義されたクラスです。
アクセストークン
token_type
expires_in
範囲
これは非常に包括的なサンプルであり、関連する部分を取得するために少し掘り下げる必要がありますが、私が知る限り、すべてがそこにあります。私が投稿したスニペットは、簡単にするために、サンプルの他の場所で行われたいくつかのことを単純に組み合わせたものです。