public static SpotifyAccessToken GetConnection() { SpotifyConnection connection = new SpotifyConnection(); SpotifyAccessToken token = connection.GetAccessToken(); return(token); }
private async Task GetAuthToken() { await Task.Run(() => { WebHost.CreateDefaultBuilder(null) .Configure(y => { y.UseRouting(); y.UseEndpoints(endpoints => { endpoints.MapGet("/", async context => { await context.Response.CompleteAsync(); var response = await _httpClient.PostAsync("https://accounts.spotify.com/api/token", new FormUrlEncodedContent(new Dictionary <string, string> { { "code", context.Request.Query["code"].ToString() }, { "client_id", _config.GetSection("clientId").Value }, { "grant_type", "authorization_code" }, { "redirect_uri", "http://localhost:5000/" }, { "code_verifier", _codeVerifier } })); response.EnsureSuccessStatusCode(); Token = JsonSerializer.Deserialize <SpotifyAccessToken>(await response.Content.ReadAsStringAsync()); Token.ExpiresAt = DateTime.Now.AddSeconds(Token.ExpiresInSeconds); IsAuthenticated = true; }); }); }).Build().RunAsync(); }); }
public AlbumWrapper GetAlbum(string trackId) { SpotifyAccessToken token = GetToken().Result; AlbumWrapper mData = new AlbumWrapper(); var getSpotifyTrack = _connectionString + trackId + token.token_type + token.access_token; try { var jsonObj = new WebClient().DownloadString(getSpotifyTrack); var settings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, MissingMemberHandling = MissingMemberHandling.Ignore }; mData = JsonConvert.DeserializeObject <AlbumWrapper>(jsonObj, settings); } catch (Exception ex) { Error_Add("get_Album", ex); } return(mData); }
static void Main(string[] args) { Console.WriteLine("Hello World!"); SpotifyAccessToken accessToken = GetConnection(); string chosenCommand = TakeInput(); ExecuteCommand(chosenCommand); }
public SpotifyAccessToken GetAccessToken() { try { SpotifyAccessToken token = new SpotifyAccessToken(); string url = "https://accounts.spotify.com/api/token"; //Get details //Console.WriteLine("What is the client id"); //var clientid = Console.ReadLine(); //Console.WriteLine("What is the client secret id"); //var clientsecret = Console.ReadLine(); var clientid = ""; var clientsecret = ""; var encode_clientid_clientsecret = Convert.ToBase64String(Encoding.UTF8.GetBytes(string.Format("{0}:{1}", clientid, clientsecret))); HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url); 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 stream = webRequest.GetRequestStream(); stream.Write(req_bytes, 0, req_bytes.Length); stream.Close(); HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse(); String json = ""; using (Stream responseStresm = response.GetResponseStream()) { using (StreamReader streamReader = new StreamReader(responseStresm, Encoding.UTF8)) { //should get back a string i can then turn to json and parse for accesstoken json = streamReader.ReadToEnd(); streamReader.Close(); } }; token = JsonConvert.DeserializeObject <SpotifyAccessToken>(json); return(token); } catch (Exception ex) { Console.WriteLine(ex); return(new SpotifyAccessToken()); } }
public async Task RequestRefreshedAccessToken() { var response = await _httpClient.PostAsync("https://accounts.spotify.com/api/token", new FormUrlEncodedContent(new Dictionary <string, string> { { "grant_type", "refresh_token" }, { "refresh_token", Token.RefreshToken }, { "client_id", _config.GetSection("clientId").Value } })); response.EnsureSuccessStatusCode(); Token = JsonSerializer.Deserialize <SpotifyAccessToken>( await response.Content.ReadAsStringAsync()); if (Token != null) { Token.ExpiresAt = DateTime.Now.AddSeconds(Token.ExpiresInSeconds); } }
/// <summary> /// Gets top tracks from some artist's id /// </summary> /// <param name="id"></param> /// <returns>List of tracks</returns> public async Task <List <Track> > GetTopTracks(string id) { string GET_TRACKS = "/artists/" + id + "/top-tracks?country=US"; if (Network.Connectivity.IsConnected) { SpotifyAccessToken Token = await GetToken(); _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(Token.token_type, Token.access_token); var response = await _client.GetAsync(BASE_URL + GET_TRACKS); if (response.StatusCode == System.Net.HttpStatusCode.OK) { var jsonArtists = await response.Content.ReadAsStringAsync(); var result = JsonConvert.DeserializeObject <CollectionTracks>(jsonArtists).Tracks; return(result); } } return(default(List <Track>)); }
/// <summary> /// Gets list of artists related to the word param /// </summary> /// <param name="word"></param> /// <returns>List of artists</returns> public async Task <List <Artist> > GetArtists(string word) { string GET_ARTIST = "/search?q=" + word + "&type=artist&market=US&limit=20&offset=0"; GET_ARTIST = GET_ARTIST.Replace(" ", "%20"); if (Network.Connectivity.IsConnected) { SpotifyAccessToken Token = await GetToken(); _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(Token.token_type, Token.access_token); var response = await _client.GetAsync(BASE_URL + GET_ARTIST); if (response.StatusCode == System.Net.HttpStatusCode.OK) { var jsonArtists = await response.Content.ReadAsStringAsync(); var result = JsonConvert.DeserializeObject <ArtistResult>(jsonArtists).Artists.Items; return(result); } } return(default(List <Artist>)); }