在spotify上列出当前用户的播放列表和曲目

时间:2013-07-07 19:48:26

标签: javascript spotify playlist

我正在尝试使用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包含当前用户的所有播放列表,不是吗?我的问题是我不知道如何处理这个返回的对象以及如何迭代它。

任何人都知道如何访问此信息?

谢谢,

2 个答案:

答案 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属性未设置...有关于此的任何想法吗?

谢谢!