如何获得用户的所有艺术家(Spotify Api 1.x)?

时间:2013-05-14 09:17:04

标签: api spotify

我正在尝试为用户获取艺术家列表。在0.x Api中非常容易,但现在我无法做到。

require([
        '$api/models',
        '$api/location#Location',
        '$api/library#Library',
        '$api/search#Search',
        '$api/toplists#Toplist',
        '$views/buttons',
        '$views/list#List',
        '$views/image#Image'
        ], function(models, Location, Library, Search, Toplist, buttons, List, Image) {

    var librarys = Library.forCurrentUser();
    console.log("LIBRARY", librarys);
      librarys.load("artists").done(
          function(artists) {
              console.log(artists);

              artists.load('owner').done(function(snapshot) {
                  console.log("SNAP",snapshot);

              });
          });
});

我收到了"Library.forCurrentUser();"的回复,但我接下来尝试的一切都失败了。没有错误或其他内容,但"librarys.load("artists")""librarys.snapshot()"都有效。

1 个答案:

答案 0 :(得分:4)

通过从库中加载“艺术家”,您实际上并没有让艺术家回到回调函数中,而是一个已经加载了艺术家的库。由于您几乎不需要加载所有内容,因此如果您指定要加载的内容,则性能会更好。如果您想加载曲目和艺术家,只需使用“artists”,“tracks”作为加载参数。

如果您想在当前用户的库中看到艺术家,您可以这样做:

require(['$api/library#Library'], function(Library) {
    Library.forCurrentUser().load("artists").done(function(library) {
        library.artists.snapshot().done(function(snapshot) {
             for (var i = 0; i < snapshot.length; i++) {       
                 console.log(snapshot.get(i).name); 
             }
        });
    });
});

希望这会有所帮助。

编辑:这适用于Spotify Apps API版本1.25.1。