繁体   English   中英

Facebook Graph API响应javascript

[英]Facebook Graph API response javascript

我想得到每个朋友的名字和照片。 请告诉我我该如何处理。 我没有行,却发现错误“未捕获的TypeError:无法将属性'innerHTML'设置为null”

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

这行是错误的: 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)进行调试,这样您就可以看到响应中到底有什么。 只是说。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM