Exemple #1
0
        public async Task Apply(IRequest request, IAPIConnector apiConnector)
        {
            Ensure.ArgumentNotNull(request, nameof(request));

            if (Token == null || Token.IsExpired)
            {
                var tokenRequest = new ClientCredentialsRequest(ClientId, ClientSecret);
                Token = await OAuthClient.RequestToken(tokenRequest, apiConnector).ConfigureAwait(false);
            }

            request.Headers["Authorization"] = $"{Token.TokenType} {Token.AccessToken}";
        }
        public static Task <ClientCredentialsTokenResponse> RequestToken(
            ClientCredentialsRequest request, IAPIConnector apiConnector
            )
        {
            Ensure.ArgumentNotNull(request, nameof(request));
            Ensure.ArgumentNotNull(apiConnector, nameof(apiConnector));

            var form = new List <KeyValuePair <string, string> >
            {
                new KeyValuePair <string, string>("grant_type", "client_credentials")
            };

            return(SendOAuthRequest <ClientCredentialsTokenResponse>(apiConnector, form, request.ClientId, request.ClientSecret));
        }
 /// <summary>
 /// Requests a new token using client_ids and client_secrets.
 /// If the token is expired, simply call the funtion again to get a new token
 /// </summary>
 /// <param name="request">The request-model which contains required and optional parameters.</param>
 /// <remarks>
 /// https://developer.spotify.com/documentation/general/guides/authorization-guide/#client-credentials-flow
 /// </remarks>
 /// <returns></returns>1
 public Task <ClientCredentialsTokenResponse> RequestToken(ClientCredentialsRequest request)
 {
     return(RequestToken(request, API));
 }