直到幾天前,一切正常,我試圖獲得Nest Access令牌時開始出現未經授權的錯誤。我已經加倍檢查,客戶端ID和客戶端密碼都是正確的。任何想法可能會導致它?試圖獲取Nest Access令牌時發生未授權錯誤
HttpWebRequest request = WebRequest.CreateHttp("https://api.home.nest.com/oauth2/access_token?");
var token = await request.GetValueFromRequest<NestToken>(string.Format(
"client_id={0}&code={1}&client_secret={2}&grant_type=authorization_code",
CLIENTID,
code.Value,
CLIENTSECRET));
public async static Task<T> GetValueFromRequest<T>(this HttpWebRequest request, string postData = null)
{
T returnValue = default(T);
if (!string.IsNullOrEmpty(postData))
{
byte[] requestBytes = Encoding.UTF8.GetBytes(postData);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
using (var postStream = await request.GetRequestStreamAsync())
{
await postStream.WriteAsync(requestBytes, 0, requestBytes.Length);
}
}
else
{
request.Method = "GET";
}
var response = await request.GetResponseAsync();
if (response != null)
{
using (var receiveStream = response.GetResponseStream())
{
using (var reader = new StreamReader(receiveStream))
{
var json = await reader.ReadToEndAsync();
var serializer = new DataContractJsonSerializer(typeof(T));
using (var tempStream = new MemoryStream(Encoding.UTF8.GetBytes(json)))
{
return (T)serializer.ReadObject(tempStream);
}
}
}
}
return returnValue;
}
您好Rohit, 我一直在圍繞Nest REST API .NET包裝。我沒有看到太多人使用.NET,所以我想我會分享我的工作: http://github.com/mitchdenny/birdhouse/ 我使用Newtonsoft.Json包爲我的JSON序列化/反序列化和它似乎一直工作正常,雖然在這種情況下,它聽起來像是巢方面的一個小故障。 –
很酷,沒有意識到這存在。我一定會試一試! –