@page "/" @inject NavigationManager navManager @using SpotifyAPI.Web

Hello, world!

@if (_isAuthed && _me != null) {

Welcome @_me.DisplayName!

You have a grant toal of @_totalPlaylistCount playlists!

} else { To get started: Login via Spotify } @code { private Uri _authUri; private bool _isAuthed; private PrivateUser _me; private int _totalPlaylistCount; protected override void OnInitialized() { var clientId = Environment.GetEnvironmentVariable("SPOTIFY_CLIENT_ID"); var baseUri = navManager.ToAbsoluteUri(navManager.BaseUri); var loginRequest = new LoginRequest(baseUri, clientId, LoginRequest.ResponseType.Token) { Scope = new[] { Scopes.PlaylistReadPrivate, Scopes.PlaylistReadCollaborative } }; _authUri = loginRequest.ToUri(); } protected override async Task OnInitializedAsync() { var uri = new Uri(navManager.Uri); var maxLen = Math.Min(1, uri.Fragment.Length); Dictionary fragmentParams = uri.Fragment.Substring(maxLen) ?.Split("&", StringSplitOptions.RemoveEmptyEntries) ?.Select(param => param.Split("=", StringSplitOptions.RemoveEmptyEntries)) ?.ToDictionary(param => param[0], param => param[1]) ?? new Dictionary(); _isAuthed = fragmentParams.ContainsKey("access_token"); if (_isAuthed) { var spotify = new SpotifyClient(fragmentParams["access_token"]); _me = await spotify.UserProfile.Current(); _totalPlaylistCount = (await spotify.Playlists.CurrentUsers()).Total; } } }