2012-04-02 3 views
1

Поскольку пользователь вводит имя исполнителя для поиска, мы хотим отобразить раскрывающийся список предложений, основанный на том, что пользователь набрал до сих пор.Spotify API models.SEARCHTYPE.SUGGESTION не работает

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

Мы пытаемся использовать вызов 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); 
     }); 

ответ

0

Похоже, нормальный поиск ввод в Spotify не поддерживает функцию автоматических предложить для префиксов поиска как «художник: Боб Ди». Однако приведенный ниже код работает для меня.

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(); 
Смежные вопросы