Esempio n. 1
0
        public static SpotifyAccessToken GetConnection()
        {
            SpotifyConnection  connection = new SpotifyConnection();
            SpotifyAccessToken token      = connection.GetAccessToken();

            return(token);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 4
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            SpotifyAccessToken accessToken = GetConnection();

            string chosenCommand = TakeInput();

            ExecuteCommand(chosenCommand);
        }
Esempio n. 5
0
        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());
            }
        }
Esempio n. 6
0
        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);
            }
        }
Esempio n. 7
0
        /// <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>));
        }
Esempio n. 8
0
        /// <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>));
        }