Поддерживать заданный порядок подачи Flickr API - PullRequest
2 голосов
/ 23 августа 2010

В настоящее время я пытаюсь настроить маленький сайт, который получает наборы из flickr, используя JavaScript и JSON. Все работает нормально, за исключением того, что порядок фотографий на сайте отличается от порядка, установленного на 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 Ответ

1 голос
/ 24 августа 2010

после более продолжительного просмотра 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...