2016-07-26 97 views
0

我想获取每个朋友的名字和图片。请告诉我如何处理这个问题。我越来越没有行找到一个错误“遗漏的类型错误:无法设置属性空的‘的innerHTML’”Facebook图形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

欢迎来到Stack Overflow!堆栈溢出不是一个免费的代码写入服务,请显示你的代码/努力和实际问题是什么。 – FrankerZ

+0

检查一下我的结果是不是显示 –

+0

我想显示每个朋友的名字和图片 –

回答

0

此行是错误的:document.getElementById('friends_data').innerHTML = 'Name :::' + response.name;

会有响应的阵列(response.data ),并且在这个阵列中将会有这些朋友的名字。

删除行,并使用for循环是这样的:

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

或者,因为你已经得到了响应的图片URL,试试这个:

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)进行调试,这样您就可以看到响应中究竟是什么。只是说。