如果我没有正确格式化,我会提前表示道歉。
我有一个将用户登录到他们的Facebook帐户的程序,我想显示他们的专辑,到目前为止我只是想获取他们的Facebook专辑封面照片,但我一直收到不好的请求。
function getAlbumName(access_token, userID) {
FB.api('/me/albums', { fields: 'id, name, cover_photo' }, function (response) {
console.log(response.data);
var ul = document.getElementById('albums');
for (var i = 0; i < response.data.length; i++) {
var
album = response.data[i],
li = document.createElement('li'),
div = document.createElement('div'),
img = document.createElement('img'),
p = document.createElement('p');
//a = document.createElement('a');
img.src = "http://graph.facebook.com/" + userID + "/" + album.id + "/"
+ album.cover_photo.id + "/picture?type=thumbnail&access_token=" + access_token;
div.setAttribute('class', 'album.info');
p.innerHTML = album.name;
div.appendChild(img);
div.appendChild(p);
li.appendChild(div);
ul.appendChild(li);
//getAlbumPhotos();
function getAlbumPhotos() {
FB.api('me/' + album.id + '/photos', function (response) {
console.log(response.data);
var parentli = document.getElementsByTagName(li);
for (var j = 0; j < album.count; j++) {
var
photo = response.data[j],
img = document.createElement('img').setAttribute("id", photo.id)
.setAttribute('src', "http://graph.facebook.com/" + album.id + "/" + photo.id);
childul = document.createElement('ul');
li.appendChild(img);
childul.appendChild(li);
parentli.appendChild(childul);
}
})
}
}
});
};
目前使用此代码我收到以下错误:
Uncaught TypeError: Cannot read property 'id' of undefined
GET http://graph.facebook.com/[user-id]/[album-id]/[cover-photo-id]/picture?type=thumbnail&access_token=[access-token] 400 (Bad Request)
如果有什么我忘了添加帮助,请告诉我,谢谢。
答案 0 :(得分:0)
格式好,不要担心:)
album
实际上是未定义的,因为您没有在函数的参数中传递它。所以它不在getAlbumPhotos
&#39;范围。
只需将getAlbumPhotos
的声明替换为
function getAlbumPhotos(album){
并取消注释调用此函数的行并在参数中添加album
。
getAlbumPhotos(album);
提示:
您可以将函数getAlbumPhotos
放在for循环之外。