2012-04-02 9 views
1

Da der Benutzer einen Künstlernamen für die Suche eingibt, möchten wir eine Dropdown-Liste mit Vorschlägen anzeigen, die auf dem basieren, was der Benutzer bisher eingegeben hat.Spotify-API-Modelle.SEARCHTYPE.SUGGESTION funktioniert nicht

Zum Beispiel, wenn der Benutzer bisher "Bob Dy" getippt hat, möchten wir "Bob Dylan", "Bob Dylan & The Band" und "Willie Nelson; Bob Dylan" genau wie das Standard-Spotify Radio auflisten App tut es.

Wir versuchen, den Such-API-Aufruf zu verwenden, um die Liste der anzuzeigenden Künstler abzurufen. Ich nehme an, wir wollen die models.SEARCHTYPE.SUGGESTION-Option verwenden, aber wenn wir diese Option verwenden, erhalten wir immer eine leere Liste. Die models.SEARCHTYPE.NORMAL-Option gibt eine Liste zurück, wenn es eine genaue Übereinstimmung gibt, wie im Falle der Eingabe von "Bob" oder "Bob Dylan", aber nicht "Bob Dy".

Können Sie uns bitte sagen, was wir falsch machen?

Die Dokumentation, die wir verwenden, ist: http://developer.spotify.com/download/spotify-apps-api/reference/833e3a06d6.html

Hier ist der Code, die wir verwenden:

 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); 
     }); 

Antwort

0

scheint, wie die normale Sucheingabe in Spotify unterstützt Auto schlägt nicht für Suchanfrage wie vorangestellter "Künstler: Bob Dy". Der Code unten funktioniert jedoch für mich.

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(); 
Verwandte Themen