public static FormUrlEncodedContent ToUrlEncoded(this PKCETokenRefreshRequest refreshRequest) { List <KeyValuePair <string, string> > headers = new List <KeyValuePair <string, string> >(); headers.Add(new KeyValuePair <string, string>("grant_type", "refresh_token")); headers.Add(new KeyValuePair <string, string>("refresh_token", refreshRequest.RefreshToken)); headers.Add(new KeyValuePair <string, string>("client_id", refreshRequest.ClientId)); return(new FormUrlEncodedContent(headers)); }
/// <summary> /// Refreshes Spotify authentication to continue having access to Spotify music controls /// </summary> /// <returns>Task for refreshing token</returns> private async Task RefreshAuthentication() { if (token == null) { await Task.Run(Init); } else if (token != null && token.IsExpired) { PKCETokenRefreshRequest refreshRequest = new PKCETokenRefreshRequest("<INSERT_CLIENT_ID>", token.RefreshToken); PKCETokenResponse refreshResponse = await new OAuthClient().RequestToken(refreshRequest); client = new SpotifyClient(refreshResponse.AccessToken); } }
private async Task <PKCETokenResponse> RefreshTokens() { try { _outputHandler.Output("Refreshing access-tokens, please wait a moment..."); var request = new PKCETokenRefreshRequest(_config.ClientId, _config.Tokens.RefreshToken); var res = await _oAuthClient.RequestToken(request); await _config.SaveTokens(res); return(_config.Tokens); } catch (Exception e) { _outputHandler.Output("Something went wrong while trying to refresh the authentication token: "); _outputHandler.Output(e.Message); return(await UseNewTokens()); } }