我正在尝试设置一个小网站,使用JavaScript和JSON从flickr中获取集合。除了网站上的照片顺序与Flickr上的照片顺序不同外,一切正常。我已经广泛搜索了这个解决方案,但没有运气。以前有人有这个问题吗?和/或知道解决方案?我目前的代码是:
function getImages(setID) {
$.getJSON("http://api.flickr.com/services/feeds/photoset.gne?set=" + setID + "&nsid=USER_ID&lang=en-us&format=json&jsoncallback=?", displayImages);
}
function displayImages(data) {
var htmlString = "";
$.each(data.items, function(i,item){
// get large images
var nextImage = (item.media.m).replace("_m.jpg", "_b.jpg");
htmlString += '<img title="' + item.title + '" src="' + nextImage;
htmlString += '" alt="'; htmlString += item.title + '" />';
});
$('#images').html(htmlString);
}
答案 0 :(得分:1)
rest
而不是feeds
,这正确地引入了订单。遗憾的是,您无法以这种方式访问大图像,但提供了访问它们的信息,因此在循环时为每个图像创建img src
:
function getImages(setID) {
$.getJSON("http://api.flickr.com/services/rest/?method=flickr.photosets.getPhotos&api_key=yourAPIkey&photoset_id=" + setID + "&lang=en-us&format=json&jsoncallback=?", displayImages);
}
function displayImages(data) {
var htmlString = "";
$.each(data.photoset.photo, function(i,photo){
var imgSrc = 'http://farm' + photo.farm + '.static.flickr.com/' + photo.server + '/' + photo.id + '_' + photo.secret + '_b.jpg';
htmlString += '<img title="' + photo.title + '" src="' + imgSrc;
htmlString += '" alt="'; htmlString += photo.title + '" />';
});
$('#images').html(htmlString);
}