来自facebook api的未定义响应数据?

时间:2012-03-21 08:39:11

标签: facebook api

我从facebook获取相册名称并使用以下代码将其写在页面上。 问题是它还包括未定义的那些,所以它写了两个“Wall Photos”,那么如何防止它写出未定义的那些?

FB.api('/xxxxxxxxxxxxxxx/albums', function(response) {

  if (response && response.data && response.data.length){
    var ul = document.getElementById('fb-albumslist');
    for (var i=0, l=response.data.length; i<l; i++) {
     if (response.data !== "undefined"){    
      var
        album = response.data[i],
        li = document.createElement('li'),
        a = document.createElement('a');
      a.innerHTML = album.name;
      a.href = album.link;
      li.appendChild(a);
      ul.appendChild(li);
    }
   }
  }
  });

在页面上写出:

Wall Photos
Wall Photos (this is undefined)
Cover Photos
Profile Picture

我正在尝试使用“if(response.data!==”undefined“){”但我不确定该怎么办? 感谢任何投入,谢谢!

1 个答案:

答案 0 :(得分:1)

似乎Facebook正在制作另一张具有以下属性的Wall Photos专辑:

{
  "id": "YYYY",
  "from": {
    "name": "AAAA",
    "id": "XXX"
  },
  "name": "Wall Photos",
  "privacy": "custom",
  "type": "friends_walls",
  "created_time": "2011-02-02T08:54:20+0000",
  "updated_time": "2011-02-02T08:54:20+0000",
  "can_upload": false
}, 

我不确定这张专辑的用途,但最好的办法是检查link字段是否存在,否则跳过:

if(!album.link) continue;