public void GetNewToken(string nestPIN) { if (string.IsNullOrWhiteSpace(nestPIN)) { return; } using (WebClient authClient = new WebClient()) { authClient.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded"; string uri = string.Format("https://api.home.nest.com/oauth2/access_token?client_id={0}&client_secret={1}&code={2}&grant_type=authorization_code", ConfigurationManager.AppSettings["Nest_Product_ID"], //Must exist in app settings. ConfigurationManager.AppSettings["Nest_Product_Secret"], //Must exist in app settings. nestPIN); string data = string.Format(""); string result = authClient.UploadString(uri, data); Console.WriteLine("Result: " + result); NestTokenModel tokenResult = JsonConvert.DeserializeObject <NestTokenModel>(result); tokenResult.timestamp = DateTimeOffset.UtcNow; string tokenJson = JsonConvert.SerializeObject(tokenResult); Console.WriteLine("Reserialized: " + result); Properties.Settings.Default.NestTokenJson = tokenJson; Properties.Settings.Default.Save(); GetLocalToken(); Console.WriteLine("Saved"); } }
public string GetLocalToken() { string tokenJson = Properties.Settings.Default.NestTokenJson; if (string.IsNullOrWhiteSpace(tokenJson)) { Console.WriteLine("null local token"); return(null); } else { //Console.WriteLine("local token json: " + tokenJson); NestTokenModel model = JsonConvert.DeserializeObject <NestTokenModel>(tokenJson); //Console.WriteLine("local token:" + model.access_token); return(model.access_token); } }