2016-07-26 23 views
0

Ich möchte Name und Bild von jedem Freund bekommen. Bitte sag mir wie ich damit umgehen kann. Ich bin keine Reihe bekommen und einen Fehler zu finden „Uncaught Typeerror: Kann nicht gesetzt Eigenschaft‚innerHTML-‘von null“Facebook Graph API Antwort 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

Willkommen bei Stack Overflow! Stack Overflow ist kein kostenloser Code-Schreibdienst, bitte zeigen Sie Ihren Code/Aufwand und was das eigentliche Problem ist. – FrankerZ

+0

check this one Mein Ergebnis wird nicht angezeigt –

+0

Ich möchte den Namen und das Bild aller Freunde anzeigen –

Antwort

0

Diese Zeile ist falsch: document.getElementById('friends_data').innerHTML = 'Name :::' + response.name;

Es wird ein Array in Reaktion (response.data), und in diesem Array wird es die Freunde mit ihren Namen geben.

die Linie entfernen und dergleichen dieser for-Schleife:

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

Oder, da Sie bereits die Bild-URL in der Antwort erhalten, versuchen Sie dies:

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

Btw, es ist besser, Debugging mit console.log(response) zu Beginn des Rückrufs, so dass Sie sehen können, was genau in der Antwort ist. Sag es einfach.