public async Task <UserInformation> FinishLogIn(SpotifyCode spotifyCode) { var response = await new OAuthClient() .RequestToken(new AuthorizationCodeTokenRequest(_spotifyService.ClientID, _spotifyService.ClientSecret, spotifyCode.Code, _spotifyService.RedirectUri)); var spotify = new SpotifyClient(response.AccessToken); var user = await spotify.UserProfile.Current(); var userInformation = new UserInformation(user.DisplayName, user.Id, response.AccessToken); // save refresh token to DB try { var token = await _context.RefreshTokens.FirstOrDefaultAsync(t => t.UserID == user.Id); if (token != null) { token.Token = response.RefreshToken; } else { var refreshToken = new RefreshToken(user.Id, response.RefreshToken); await _context.RefreshTokens.AddAsync(refreshToken); } await _context.SaveChangesAsync(); } catch (Exception e) { Debug.WriteLine(e.Message); } return(userInformation); }
public static SpotifyApiClient SpotifyApiClient(SpotifyCode spotifyCode) { var restClient = new RestClient("https://api.spotify.com/v1") { Authenticator = new OAuth2AuthorizationRequestHeaderAuthenticator(spotifyCode.AccessToken, spotifyCode.TokenType) }; return(new SpotifyApiClient(restClient, new SpotifyApiConfiguration(spotifyCode.AccessToken))); }