Spotify API models.SEARCHTYPE.SUGGESTION не работает - PullRequest
1 голос
/ 02 апреля 2012

Когда пользователь вводит имя исполнителя для поиска, мы хотим отобразить раскрывающийся список предложений, основанный на том, что пользователь уже набрал.

Например, если пользователь до сих пор набрал «Bob Dy», мы хотели бы перечислить «Bob Dylan», «Bob Dylan & The Band» и «Willie Nelson; Bob Dylan» так же, как стандартное приложение Spotify Radio. делает.

Мы пытаемся использовать вызов API поиска, чтобы получить список исполнителей для отображения. Я предполагаю, что мы хотим использовать опцию models.SEARCHTYPE.SUGGESTION, однако при использовании этой опции мы всегда получаем пустой список. Опция models.SEARCHTYPE.NORMAL возвращает список, когда существует точное совпадение, например, в случае ввода «Боб» или «Боб Дилан», но не «Боб Дай».

Не могли бы вы рассказать нам, что мы делаем не так?

Документация, которую мы используем: 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 голосов
/ 03 апреля 2012

Похоже, что обычный поисковый ввод в 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();
...