Пример #1
0
        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)));
        }