我一直在使用MSDN article (Code given by step 6)提供的代码。问题是它使用 HttpUtility Web客户端 在windows metro风格框架中没有的类和那些我修改了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”错误请求“结果。当从Google检查时,它表明我没有正确设置标题。 正如MSDN Page所述,我已设置所有必需的标题,如下所示,以获取访问令牌,而访问令牌将用于发送通知
希望有人能帮我解决这个问题。 Thanx:)