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)); }