2016-07-26 21 views
0

私はすべての友人の名前と画像を取得したいと思います。私はこれをどのように扱うことができるか教えてください。私は、行を取得していないと、エラーを発見しています「キャッチされない例外TypeError:設定できないプロパティはnullの 『innerHTMLプロパティは、』」Facebook Graph APIレスポンスjavascript

 FB.api('/me/friends','GET',{"fields":"id,name,email,picture.height(500)"}, 
    function(response) { 
     console.log(response.total_count); 
     var result_holder = document.getElementById('result_friends'); 
    // var friend_data = response.data.sort();//sort(sortMethod); 
     var results = ''; 
     document.getElementById('friends_data').innerHTML = 'Name :::' + response.name; 
     for (var i = 0; i < friend_data.length; i++) { 
      console.log(i + results); 
      results += '<div><img src="https://graph.facebook.com/' + friend_data[i].id + '/picture">' + friend_data[i].name + '</div>'; 
     }    
     // and display them at our holder element 
     result_holder.innerHTML = '<h2>Result list of your friends:</h2>' + results;}); 
+2

ようこそスタックオーバーフロー!スタックオーバーフローは、無料のコード作成サービスではありません、あなたのコード/努力と実際の問題が何であるかを示してください。 – FrankerZ

+0

これをチェックしてください私の結果は表示されません –

+0

すべての友達の名前と写真を表示したい –

答えて

0

この行は間違っている:document.getElementById('friends_data').innerHTML = 'Name :::' + response.name;

は、応答配列(response.dataがあります)、その配列には名前の付いた友人がいます。

行を削除し、このようなループのために使用します。あなたはすでに対応して画像のURLを取得するので、

for (var i = 0; i < response.data.length; i++) { 
    results += '<div><img src="https://graph.facebook.com/' + response.data[i].id + '/picture">' + response.data[i].name + '</div>'; 
} 

それとも、これを試してみてください。

for (var i = 0; i < response.data.length; i++) { 
    results += '<div><img src="' + response.data[i].picture.data.url + '">' + response.data[i].name + '</div>'; 
} 

ところで、それは良いですコールバックの最初にconsole.log(response)でデバッグするだけで、応答に正確に何が含まれているかを確認できます。ただ言って。