保持设置订单源Flickr API

时间:2010-08-23 08:29:00

标签: javascript json flickr

我正在尝试设置一个小网站,使用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);
}

1 个答案:

答案 0 :(得分:1)

在仔细查看api之后,我最终使用了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);
}