2016-09-30 5 views
2

Spotify APIで再生する - 私が入力したときにjQueryを使用してアーティストにフィールドを自動補完したいと思います。これまでのところ私は、次のように働いている:Spotify API - オートコンプリートの検索結果がnullです

HTML:

<input type="text" class="text-box" placeholder="Enter Artist" id="artist-input"> 

Javascriptを:これを実行する

$(document).ready(function() { 

    $("#artist-input").autocomplete({ 
    source: function(request, response) { 
     $.ajax({ 
      type: "GET", 
      url: "https://api.spotify.com/v1/search", 
      dataType: "json", 
      data: { 
       type: "artist", 
       limit: 3, 
       contentType: "application/json; charset=utf-8", 
       format: "json", 
       q: request.term 
      }, 
      success: function(data) { 
       response($.map(data.artists, function(item) { 
        return { 
         label: item.name, 
         value: item.name, 
         id: item.id 
        } 
       })); 
      } 
     }); 
    }, 
    minLength: 3, 
    select: function(event, ui) { 
     $("#artist-input").val(ui.item.value); 
     window.location.href = "#" + ui.item.value; 
    }, 
}); 

}); 

、結果:

functions.js:35 Uncaught TypeError: Cannot read property 'name' of null 

だから私の質問は、私がやるですこのプロセスを実行するには、何らかの認証を行う必要がありますか?私の思考プロセスは、それがコールを作っているということですが、それがnullとして戻っだ、と私は余分なステップが欠落しています...ここで

は、この例でcodepenです:あなたが使用しているhttp://codepen.io/anon/pen/PGKLpj

答えて

2

データが構造化されています少し違う。 data.artistsの代わりにdata.artists.itemsです。右の属性をループするとうまくいきます。

はこのペンをチェックアウト:http://codepen.io/anon/pen/qaXvob

注:これは、JSONの構造は、あなたはそれが何を考えていることと一致するかどうかを確認するために時々ちょうどconsole.log(data);に出役立ちます。

+0

Ah。ありがとう!私がここで言及した回答の多くは、廃止予定のAPI http://ws.spotify.com/search/1/album.jsonなどを使用していたため、データ属性がオフ。 – kawnah

関連する問題