public override IViewModel GenerateToken(Account owner, string code) { Console.WriteLine($"SpotifyService(GenerateSpotifyToken): The user code is {code}"); var result = _spotifyWrapper.GenerateSpotifyToken(code); if (!result.Success) { Console.WriteLine("SpotifyService(GenerateSpotifyToken): Failed to get token"); return(new ErrorViewModel() { Error = (result as RequestFailedModel).Error }); } SpotifyTokenModel tokenModel = result as SpotifyTokenModel; var token = new Models.Token() { AccessToken = tokenModel.Access_Token, RefreshToken = tokenModel.Refresh_Token, ExpireIn = tokenModel.Expires_In, Type = ServiceTypeEnum.Spotify }; _context.Tokens.Add(token); owner.Tokens.Add(token); _context.Update(owner); _context.SaveChanges(); Console.WriteLine("SpotifyService(GenerateSpotifyToken): Token successfully saved"); return(new SuccessViewModel()); }
public SpotifyWebAPI GetSpotifyWebApi(SpotifyTokenModel model) { SpotifyWebAPI api = new SpotifyWebAPI() { AccessToken = model.Access_Token, TokenType = model.Token_Type, UseAuth = true }; return(api); }
public IRequestStateModel GetSpotifyProfile(SpotifyTokenModel model) { using (var httpClient = new HttpClient()) { httpClient.DefaultRequestHeaders.Add("Authorization", $"{model.Token_Type} {model.Access_Token}"); var response = httpClient.GetAsync("https://api.spotify.com/v1/me").Result; var responseContent = response.Content.ReadAsStringAsync().Result; if (responseContent.Contains("error")) { var json = JObject.Parse(responseContent); return(new RequestFailedModel() { Error = (string)json["error_description"] }); } return(JsonConvert.DeserializeObject <SpotifyProfileModel>(responseContent)); } }
public string GetAccessToken() { SpotifyTokenModel token = new SpotifyTokenModel(); string url5 = "https://accounts.spotify.com/api/token"; var encode_clientid_clientsecret = Convert.ToBase64String(Encoding.UTF8.GetBytes(string.Format("{0}:{1}", "2de5398af2154649b572315de55900e3", "467401d203114d0bb49fcbf22909998f"))); HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url5); webRequest.Method = "POST"; webRequest.ContentType = "application/x-www-form-urlencoded"; webRequest.Accept = "application/json"; webRequest.Headers.Add("Authorization: Basic " + encode_clientid_clientsecret); var request = ("grant_type=client_credentials"); byte[] req_bytes = Encoding.ASCII.GetBytes(request); webRequest.ContentLength = req_bytes.Length; Stream strm = webRequest.GetRequestStream(); strm.Write(req_bytes, 0, req_bytes.Length); strm.Close(); HttpWebResponse resp = (HttpWebResponse)webRequest.GetResponse(); String json = ""; using (Stream respStr = resp.GetResponseStream()) { using (StreamReader rdr = new StreamReader(respStr, Encoding.UTF8)) { //should get back a string i can then turn to json and parse for accesstoken json = rdr.ReadToEnd(); rdr.Close(); } } token = JsonConvert.DeserializeObject <SpotifyTokenModel>(json); return(token.Access_token); }