public IHttpActionResult Create(string code)
        {
            Session session = null;
            var     client  = new RestClient(Constants.Spotify.AccountsBaseApi);
            var     request = new RestRequest("token", Method.POST);

            request.AddHeader("content-type", "application/x-www-form-urlencoded");
            request.AddParameter("application/x-www-form-urlencoded", $"client_id={Constants.Spotify.ClientId}&client_secret={Constants.Spotify.ClientSecret}&grant_type={grantType}&code={code}&redirect_uri={Constants.Spotify.RedirectUri}", ParameterType.RequestBody);

            IRestResponse response = client.Execute(request);

            if (response.IsSuccessful)
            {
                SpotifyTokenResponse responseBody = JsonConvert.DeserializeObject <SpotifyTokenResponse>(response.Content);
                if (responseBody.scope != null && responseBody.access_token != null)
                {
                    SpotifyCredentials credentials = new SpotifyCredentials(responseBody.access_token, responseBody.refresh_token, new List <string>(responseBody.scope.Split(' ')));
                    IPlayer            player      = new SpotifyPlayer(credentials);
                    session = new Session(player);
                    sessions.Add(session);
                }
            }

            return(session != null ? (IHttpActionResult)Ok(session) : NotFound());
        }
Example #2
0
        public List <Disco> PesquisarDiscoSpotify(SpotifyCredentials spotifyCredentials)
        {
            var token = ClientCredentials.GetToken(new AuthParameters
            {
                ClientId     = spotifyCredentials.ClientId,
                ClientSecret = spotifyCredentials.ClientSecret,
                Scopes       = Scope.All,
            });

            //adicionando discos do gênero Rock
            var discosRock = GetAlbums(token.AccessToken, "rock");

            discosRock.Wait();

            // adicionando discos do gênero MPB
            var discosMPB = GetAlbums(token.AccessToken, "mpb");

            discosMPB.Wait();

            // adicionando discos do gênero MPB
            var discosPOP = GetAlbums(token.AccessToken, "pop");

            discosPOP.Wait();

            // adicionando discos do gênero Clássico
            var discosClassico = GetAlbums(token.AccessToken, "classical");

            discosClassico.Wait();

            List <Disco> listaDiscos = new List <Disco>();

            if (discosRock.Result != null && discosRock.Result.tracks != null)
            {
                listaDiscos.AddRange(RetornaDiscos(EnumGenero.Rock, discosRock.Result.tracks));
            }

            if (discosMPB.Result != null && discosMPB.Result.tracks != null)
            {
                listaDiscos.AddRange(RetornaDiscos(EnumGenero.MPB, discosMPB.Result.tracks));
            }

            if (discosPOP.Result != null && discosPOP.Result.tracks != null)
            {
                listaDiscos.AddRange(RetornaDiscos(EnumGenero.POP, discosPOP.Result.tracks));
            }

            if (discosClassico.Result != null && discosClassico.Result.tracks != null)
            {
                listaDiscos.AddRange(RetornaDiscos(EnumGenero.Classic, discosClassico.Result.tracks));
            }


            return(listaDiscos);
        }
Example #3
0
 /// <summary>
 /// Instantiates SpotifyWebAPI with a token
 /// </summary>
 /// <returns></returns>
 private static SpotifyWebAPI GetSpotifyWebAPIWithToken()
 {
     try
     {
         // Initialize Spotify WebAPI
         var creds = new SpotifyCredentials();
         return(new SpotifyWebAPI()
         {
             AccessToken = creds.Token.AccessToken,
             TokenType = creds.Token.TokenType
         });
     }
     catch (Exception Ex)
     {
         // Throw a new exception to bubble up
         throw new Exception("Exception Occurred: " + Ex.Message);
     }
 }
 public AuthorizationApiGateway(IOptions <SpotifyCredentials> options, TokenHandler tokenHandler)
 {
     _tokenHandler       = tokenHandler;
     _spotifyCredentials = options.Value;
 }