MSDNの記事で提供されたコードを使用しています(ステップ6で提供されたコード) 。問題は、Windows メトロ スタイル フレームワークでは使用できない HttpUtility WebClient クラスを使用し、次のように GetAccessToken(....) メソッドを再起動することです。
protected OAuthToken GetAccessToken(string secret, string sid)
{
var urlEncodedSecret = WebUtility.UrlEncode(secret);
var urlEncodedSid = WebUtility.UrlEncode(sid);
HttpClient httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Add("grant_type", "client_credentials");
httpClient.DefaultRequestHeaders.Add("client_id", urlEncodedSid);
httpClient.DefaultRequestHeaders.Add("client_secret", urlEncodedSecret);
httpClient.DefaultRequestHeaders.Add("scope", "notify.windows.com");
Task<string> responseResult = null;
try
{
Task<HttpResponseMessage> response = httpClient.GetAsync("https://login.live.com/accesstoken.srf");
responseResult = response.Result.Content.ReadAsStringAsync();
}
catch (Exception ex)
{
// Display the error message
}
return GetOAuthTokenFromJson(responseResult.Result);
}
問題は、結果として「400 "Bad Request" が返されることです。Google から確認すると、ヘッダーが正しく設定されていないことが示唆されます。MSDN ページが言うように、必要なすべてのヘッダーを次のように設定して、アクセス トークンをフェッチします。通知の送信に使用されます
誰かがこれを理解するのを手伝ってくれることを願っています。ありがとう:)