Как получить плейлист текущего пользователя от Spotify - PullRequest
0 голосов
/ 06 марта 2019

Я пытаюсь реализовать интеграцию Spotify с плейлистом текущего пользователя, чтобы отобразить его в виде таблицы.Я интегрировал с логином и токеном доступа все отлично работает.Я прошел через ссылку переполнения стека: - Как получить список песен, используя Spotify в Swift3 iOS? , но у меня не получилось.

Затем, чтобы получить печать для canonicalUsername, как показано ниже, показывает нулевое значение

SPTUser.requestCurrentUser(withAccessToken:(SPTAuth.defaultInstance().session.accessToken)!) { (error, data) in
        guard let user = data as? SPTUser else { print("Couldn't cast as SPTUser"); return }
        let userId = user.canonicalUsername
})

Я даже пробовал эту ссылку Spotify iOS SDK Swift отображать все (!) плейлисты (20 +) из-за новичка, возможно, он тоже этого не делалработать на меня.Есть ли способ получить текущий идентификатор пользователя Spotify?Как я могу показать плейлист текущего пользователя в виде таблицы?

1 Ответ

1 голос
/ 11 марта 2019

Просто пройдите онлайн-урок в YouTube: - https://www.youtube.com/watch?v=KLsP7oThgHU&t=1s для последней версии в 2019 году.

Загрузка полного исходного кода с помощью интеграции Spotify + параметры поиска + URL-адрес Spotify по умолчанию, выбор плейлиста текущего пользователя и воспроизведение в нашем родном приложении для iOS Источник: - https://github.com/azeemohd786/Spotify-Demo

Исходя из вашего вопроса, попробуйте распечатать canonicalUsername или идентификатор текущего пользователя, как показано ниже,

 SPTUser.requestCurrentUser(withAccessToken: session.accessToken) { (error, data) in
                    guard let user = data as? SPTUser else { print("Couldn't cast as SPTUser"); return }
                    let userID = user.canonicalUserName

                 print(userID!)
                 }   

Затем, чтобы получить список воспроизведения текущего пользователя и воспроизвести его на своем устройстве, сначала вызовите делегат SPT в вашем контроллере представления, а затем вызов функции,

class PlayVC: UIViewController, SPTAudioStreamingDelegate, SPTAudioStreamingPlaybackDelegate {
func audioStreamingDidLogin(_ audioStreaming: SPTAudioStreamingController) {
        let playListRequest = try! SPTPlaylistList.createRequestForGettingPlaylists(forUser: session.canonicalUsername, withAccessToken: session.accessToken)
        Alamofire.request(playListRequest)
            .response { response in
                let list = try! SPTPlaylistList(from: response.data, with: response.response)

                for playList in list.items  {
                    if let playlist = playList as? SPTPartialPlaylist {
                        print( playlist.name! ) // playlist name
                        print( playlist.uri!)    // playlist uri
                      // self.tableView.reloadData()// if u want to display playlist name and other stuffs like so..
                        SPTAudioStreamingController.sharedInstance().playSpotifyURI("\(playlist.uri!)", startingWith: 0, startingWithPosition: 10) { error in
                            if error != nil {
                                print("*** failed to play: \(error)")
                                return
                            }
                        }
                        }}}

    }
}
...