SPTPlaylistSnapshot tracksForPlayback返回nil

Ank*_*it 7 spotify ios swift

试图获取用户播放列表中的所有曲目,它可以在Objective-C演示应用程序中运行,但是当我在Swift中尝试时它会返回:

<SPTPlaylistList: 0x7fca22d72460>: 0-0 of 1 items (Function)

我正在使用此代码:

SPTPlaylistList.playlistsForUserWithSession(session, callback: { (error, object) -> Void in
            if error == nil {
                var playlists = object as! SPTListPage
                println(playlists)
                SPTPlaylistSnapshot.playlistWithURI(playlists.items[0].uri, accessToken: session.accessToken, callback: { (error:NSError!, obj) -> Void in
                    var playl = obj as! SPTPlaylistSnapshot
                    println(playl.firstTrackPage.tracksForPlayback)
                })
            }

        })
Run Code Online (Sandbox Code Playgroud)

这是正在运行的Objective-C代码:

[SPTPlaylistList playlistsForUserWithSession:session callback:^(NSError *error, id object) {
    SPTListPage *aa = object;
    NSLog(@"%@",aa.items);
    [SPTPlaylistSnapshot playlistWithURI:[NSURL URLWithString:@"spotify:user:spotifizr:playlist:3bpGFVfycGnhtcEVb95G98"]
                             accessToken:session.accessToken
                                callback:^(NSError *error, SPTPlaylistSnapshot *object) {
                                    NSLog(@"tracks on page 1 = %@", [object.firstTrackPage tracksForPlayback]);

                                }];
}];
Run Code Online (Sandbox Code Playgroud)

不知道为什么它会(function)在Swift项目中返回,而不是所有的轨道.

编辑:试过

println(playl.firstTrackPage.tracksForPlayback()) 
Run Code Online (Sandbox Code Playgroud)

但是现在它返回nil,尽管我在播放列表中有50个曲目.

小智 2

您需要在请求的范围中包含以下一项或两项(如果它们尚不存在): SPTAuthPlaylistReadScopeSPTAuthPlaylistReadPrivateScope分别允许访问用户的公共和私人播放列表。

请参阅https://github.com/spotify/ios-sdk的身份验证和范围部分