我正在尝试使用API列出Spotify集成应用中当前用户的所有播放列表(及其曲目),如https://github.com/spotify/apps-tutorial/tree/1.0中所述。
有没有办法做到这一点?或者现在不支持?
使用1.X API我这样做了:
var returnedLibrary;
require(['$api/library#Library'], function(Library) {
returnedLibrary = Library.forCurrentUser();
});
(来自:https://developer.spotify.com/docs/apps/api/1.0/library_.html)
我认为我的对象returnedLibrary
包含当前用户的所有播放列表,不是吗?我的问题是我不知道如何处理这个返回的对象以及如何迭代它。
任何人都知道如何访问此信息?
谢谢,
答案 0 :(得分:2)
如果您对用户的播放列表感兴趣,可以这样做:
var returnedLibrary;
require(['$api/library#Library'], function(Library) {
returnedLibrary = Library.forCurrentUser();
returnedLibrary.playlists.snapshot().done(function(snapshot) {
for (var i = 0, l = snapshot.length; i < l; i++) {
var playlist = snapshot.get(i);
// do something with playlist
}
});
});
答案 1 :(得分:1)
最后我达到了目的:
var returnedLibrary;
require(['$api/library#Library'], function(Library) {
returnedLibrary = Library.forCurrentUser();
returnedLibrary.playlists.snapshot().done(function(snapshot) {
for (var i = 0, l = snapshot.length; i < l; i++) {
var playlist = snapshot.get(i);
aplay._collections();
aplay.tracks.snapshot().done(function(s){
selectedPlaylist = s;
for(k=0;k<s.length;k++){
s.get(k).name; //Will be the name of that song
}
});
}
});
});
尽管如此,我不知道为什么我要调用aplay._collections();
(这似乎是一种私有方法)。如果我不这样做,则tracks
属性未设置...有关于此的任何想法吗?
谢谢!