使用Spotify应用程序API进行搜索时缺少年份/编号

使用Spotify应用程序API进行搜索时缺少年份/编号,spotify,Spotify,我正在尝试使用Spotify应用程序API进行专辑搜索,但结果中缺少数据。具体来说,numResults始终为0,年份有时为0。例如: var search = new models.Search("genre:Jazz"); search.searchTracks = false; search.observe(models.EVENT.CHANGE, function() { console.log(search.albums); for(var i in searc

我正在尝试使用Spotify应用程序API进行专辑搜索,但结果中缺少数据。具体来说,numResults始终为0,年份有时为0。例如:

var search = new models.Search("genre:Jazz");
search.searchTracks = false;    
search.observe(models.EVENT.CHANGE, function() {
    console.log(search.albums);
    for(var i in search.albums) {
        console.log(search.albums[i].data.year)
    }
});
search.appendNext();
如果您查看控制台,许多相册每年返回0。但是如果您使用元数据API检查这些相册,它们将成功返回一年。有趣的是,如果您同时搜索曲目,会得到更好的结果:

var search = new models.Search("genre:Jazz");
search.searchTracks = true;
search.observe(models.EVENT.CHANGE, function() {
    console.log(search.albums);
    for(var i in search.albums) {
        console.log(search.albums[i].data.year)
    }
});
search.appendNext();
然而,一些专辑仍然缺少年份(大概是那些在50首曲目搜索结果中没有返回曲目的专辑)

有没有人对如何构造搜索查询有什么想法,以便返回所有专辑的年份,或者这可能是一个bug


(注意:一旦你为一个类型运行了第二个代码示例,第一个代码示例由于缓存而返回更好的结果。在一个新的类型上尝试它,你会看到很多0)

确保您正在观察所需相册上的
models.EVENT.CHANGE
事件-这些信息是单独加载的,通常是延迟加载的

您可以尝试在每个相册上使用models.Album.fromURI,以确保加载元数据。大概是这样的:

var search = new models.Search("genre:Jazz");
search.searchTracks = false;    
search.observe(models.EVENT.CHANGE, function() {
    console.log(search.albums);
    for(var i in search.albums) {
        var a = models.Album.fromURI(search.albums[i].uri, function(album) {
          console.log(album.year)
        }
    }
});
search.appendNext();

我在自己开发的一个应用程序中使用过这种东西,它似乎有助于确保数据完整。

不幸的是,这没有帮助。从搜索返回的相册结果似乎并不总是正确的格式。我在其他地方尝试从搜索的相册创建播放器对象时遇到问题。我的猜测是某个地方有一个bug,或者也许搜索的设计方式意味着相册有时会丢失信息。