使用javascript api显示来自facebook的照片?

使用javascript api显示来自facebook的照片?,javascript,facebook,facebook-graph-api,facebook-javascript-sdk,Javascript,Facebook,Facebook Graph Api,Facebook Javascript Sdk,我想用javascript api在我的网页上显示我的facebook相册中的照片。 我可以用下面的代码读取相册名称,但我如何才能显示其中一个相册的照片 FB.api('/myfacebookid/albums', function(response) { var ul = document.getElementById('albums'); for (var i=0, l=response.data.length; i<l; i++) { var

我想用javascript api在我的网页上显示我的facebook相册中的照片。 我可以用下面的代码读取相册名称,但我如何才能显示其中一个相册的照片

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

    var ul = document.getElementById('albums');
    for (var i=0, l=response.data.length; i<l; i++) {
      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);
    }
  });
FB.api('/myfacebookid/albums',函数(响应){
var ul=document.getElementById('albums');

对于(var i=0,l=response.data.length;i你可以使用这个图来做这件事……你所需要的只是上面的
album.id
,然后你打电话到这个图上获取照片。我通过
fields=pictures
告诉facebook只返回图片链接。你可以省略这个参数,它会给你带来一大堆东西

https://graph.facebook.com/<album.id>/photos?fields=picture

https://graph.facebook.com/

这可以通过向
照片
连接
相册
发出Graph API请求来实现:

FB.api('/me/albums?fields=id,name', function(response) {
  for (var i=0; i<response.data.length; i++) {
    var album = response.data[i];
    if (album.name == 'Profile Pictures'){

      FB.api('/'+album.id+'/photos', function(photos){
        if (photos && photos.data && photos.data.length){
          for (var j=0; j<photos.data.length; j++){
            var photo = photos.data[j];
            // photo.picture contain the link to picture
            var image = document.createElement('img');
            image.src = photo.picture;
            document.body.appendChild(image);
          }
        }
      });

      break;
    }
  }
});
FB.api('/me/albums?fields=id,name',函数(响应){

对于(var i=0;我手头上刚刚有类似的东西,否则它会像你的答案一样结束;)谢谢,多汁。我用上面的测试,但我得到一个错误:TypeError:“undefined”不是一个对象(评估“response.data.length”)@Claes,这通常意味着相册列表没有通过第一次
FB.api
调用返回。添加类似于我在第二次调用中使用的检查以避免此错误。深入
response
对象以了解相册为什么没有返回,例如
console.log(response)
可能会有帮助。好的,我已经在图形浏览器中使用FB.api(“/me/albums?fields=id,name”和FB.api(“/”+album.id+“/photos”进行了测试,它返回了正确的内容。那么为什么我会出现错误:TypeError:“undefined”不是一个对象(评估“response.data.length”),我就是不明白?在你的问题中添加一个额外的部分,显示你正在谈论的代码…什么是
响应。数据
FB.api('/me/albums?fields=id,name', function(response) {
  for (var i=0; i<response.data.length; i++) {
    var album = response.data[i];
    if (album.name == 'Profile Pictures'){

      FB.api('/'+album.id+'/photos', function(photos){
        if (photos && photos.data && photos.data.length){
          for (var j=0; j<photos.data.length; j++){
            var photo = photos.data[j];
            // photo.picture contain the link to picture
            var image = document.createElement('img');
            image.src = photo.picture;
            document.body.appendChild(image);
          }
        }
      });

      break;
    }
  }
});