Xamarin Uygulamalarınız için Spotify API Kullanımı

Merhaba,

Bu örneğimizde Xamarin ile geliştirdiğimiz mobil uygulamalarımızda Spotify API kullanarak, Spotify üzerinde oluşturduğumuz playlistlerimize ve detaylara ulaşacağız.

Öncelikle https://developer.spotify.com/dashboard/applications adresinde yeni bir uygulama yaratmamız gerekiyor. Daha sonra Spotify API docs inceleyerek önce auth ve token işlemlerini yapacağız sonrasında ise playlist ve şarkı işlemlerine geçeceğiz.

Spotify uygulaması kullanarak yaptığınız tüm işlemleri bu API docs içerisinde bulabilir ve kendi uygulamalarınıza entegre edebilirsiniz. Bu örneğimizde sadece auth ve playlist işlemleri yapılacak.

Spotify’ın Android ve iOS kütüphaneleri mevcut fakat ben örneği API kullanarak geliştireceğim.

Authorization

Spotify temelinde tüm işlemler için bir token istiyor. Bu token’ı üretmemiz için de tüm işlemlerden önce auth konusunu halletmemiz lazım.

    public class AccountService : HttpHelper, IAccountService
    {
        public async Task<AccessToken> GetAccessToken()
        {
            Client.DefaultRequestHeaders.Authorization = GetHeader();
            var result = await Client.PostAsync("https://accounts.spotify.com/api/token",
                new StringContent("grant_type=client_credentials", Encoding.UTF8, "application/x-www-form-urlencoded"));
            var response = await result.Content.ReadAsStringAsync();
            var token = JsonConvert.DeserializeObject<AccessToken>(response);
            GlobalSetting.Instance.token = token.Token;
            return token;
        }

        private AuthenticationHeaderValue GetHeader()
        {
            return new AuthenticationHeaderValue("Basic",
                Convert.ToBase64String(Encoding.ASCII.GetBytes(string.Format("{0}:{1}",
                    "Client_Id", "Client_Secret")))
            );
        }
    }

Spotify Dashboard kısmında uygulamanıza giderek Client_Id ve Client_Secret kodlarınızı alabilirsiniz.

Reference

Web Api reference kısmında kullanacağımız tüm endpointler detaylı bir şekilde verilmiş. Ben direkt playlists kısmına gidiyorum.

var albums = await _providerService.Get<Album>("https://api.spotify.com/v1/users/risegg/playlists");

İçerisinde 32 adet şarkı olan Metallica playlistime ulaşabildim. Birden fazla playlist’im olsaydı CarouselView içerisinde swipe ederek geçiş yapabilecektim.

        public ICommand SelectCommand => new Command(async (o) =>
        {
            if (o != null && o is Item playlist)
            {
                IsBusy = true;
                var tracks = await _providerService.Get<Playlist>($"https://api.spotify.com/v1/playlists/{playlist.id}/tracks");
                string trackNames = "";
                foreach (var item in tracks.Items)
                    trackNames += item.Track.Name + "\n";

                UserDialogs.Instance.Alert(new AlertConfig
                {
                    Message = trackNames,
                    Title = "Tracks",
                    OkText = "Ok"
                });

                IsBusy = false;
            }
        });

Çok kolay bir şekilde seçili playlist Id ile içindeki şarkılara gidebildik. Bundan sonrası çok daha farklı şekillendirilebilir.

Spotify API kullanarak mobil uygulamalarınıza çok hızlı bir şekilde Spotify özelliklerini ekleyebilirsiniz.

Github : https://github.com/ozaksuty/SpotifyXam

Kaynak : https://developer.spotify.com/documentation/web-api/libraries/

Yiğit ÖZAKSÜT

MVP, MCT, Xamarin Developer, Consultant & Architect

Yorum Gönder