1

ユーザーのアーティストのリストを取得しようとしています。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()"機能しません。

4

1 に答える 1

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 で機能しています。

于 2013-05-15T06:52:46.140 に答える