Spotify API models.SEARCHTYPE.SUGGESTION无法正常工作

时间:2012-04-02 06:31:58

标签: api spotify

当用户键入要搜索的艺术家姓名时,我们希望根据用户目前输入的内容显示建议的下拉列表。

例如,如果用户到目前为止输入了“Bob Dy”,我们希望列出“Bob Dylan”,“Bob Dylan& The Band”和“Willie Nelson; Bob Dylan”,就像标准的Spotify Radio一样App确实。

我们正在尝试使用Search API调用来检索要显示的艺术家列表。我假设我们想要使用models.SEARCHTYPE.SUGGESTION选项,但是当使用该选项时,我们总是得到一个空列表。当存在完全匹配时,models.SEARCHTYPE.NORMAL选项会返回一个列表,例如输入“Bob”或“Bob Dylan”但不输入“Bob Dy”。

你能否告诉我们我们做错了什么?

我们使用的文档是: http://developer.spotify.com/download/spotify-apps-api/reference/833e3a06d6.html

以下是我们使用的代码:

       var search = new models.Search('artist:"Bob Dy"');
       search.localResults = models.LOCALSEARCHRESULTS.IGNORE;
       search.searchArtists = true;
       search.searchAlbums = false;
       search.searchTracks = false;
       search.searchPlaylists = false;
       search.pageSize = 10;

       search.searchType = models.SEARCHTYPE.SUGGESTION;
       //search.searchType = models.SEARCHTYPE.NORMAL;

       search.observe(models.EVENT.CHANGE, function() {
           console.log('[models.EVENT.CHANGE observe]', search.artists);
       });

1 个答案:

答案 0 :(得分:0)

似乎Spotify中的普通搜索输入不支持像“artist:Bob Dy”这样的前缀搜索的自动建议。下面的代码对我有用。

var search = new models.Search('Bob Dy', {
    'localResults'    : models.LOCALSEARCHRESULTS.IGNORE,
    'searchArtists'   : true,
    'searchAlbums'    : false,
    'searchTracks'    : false,
    'searchPlaylists' : false,
    'pageSize'        : 10,
    'searchType'      : models.SEARCHTYPE.SUGGESTION
});
search.observe(models.EVENT.CHANGE, function() {
    search.artists.forEach(function(artist) {
        console.log('[models.EVENT.CHANGE observe] - Found artist %s',
                    artist.name);
    });
});

// Do the search, nothing will be fetched
// if this row is not executed.
search.appendNext();