private async Task <string> GetToken()
        {
            var requestToken = HttpRequestToken.Build(_spotifySettings.TokenUrl, _spotifySettings.ClientId, _spotifySettings.ClientSecret);

            var response = await _httpService.GetTokenBasic(requestToken);

            if (!response.IsSuccess())
            {
                Response.BuildInternalServerError();
            }

            var valueToken = _jsonService.DeserializeObject <SpotifyToken>(response.GetDataString());

            return(valueToken.access_token);
        }
        private async Task <string> GetToken()
        {
            var requestToken = HttpRequestToken.Build(_spotifySettings.TokenUrl, _spotifySettings.ClientId, _spotifySettings.ClientSecret);

            var response = await _httpHandle.GetTokenBasic(requestToken);

            if (!response.IsSuccess())
            {
                HttpException.ThrowGetTokenException(_spotifySettings.TokenUrl, (int)response.StatusCode);
            }

            var valueToken = _jsonHandle.DeserializeObject <SpotifyToken>(response.GetDataString());

            return(valueToken.access_token);
        }
        public async Task <HttpResponse> GetTokenBasic(HttpRequestToken requestToken)
        {
            string clientId     = requestToken.ClientId;
            string clientSecret = requestToken.ClientSecret;
            string credentials  = String.Format("{0}:{1}", clientId, clientSecret);

            try
            {
                using (var client = new HttpClient())
                {
                    //Define Headers
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes(credentials)));

                    //Prepare Request Body
                    List <KeyValuePair <string, string> > requestData = new List <KeyValuePair <string, string> >
                    {
                        new KeyValuePair <string, string>("grant_type", "client_credentials")
                    };

                    FormUrlEncodedContent requestBody = new FormUrlEncodedContent(requestData);

                    //Request Token
                    var request = await client.PostAsync(requestToken.Url, requestBody);

                    var response = await request.Content.ReadAsStringAsync();

                    return(HttpResponse.Build(request.StatusCode, response));
                }
            }
            catch (Exception ex)
            {
                return(HttpResponse.Build(HttpStatusCode.InternalServerError, ex));
            }
        }