2010-08-23 7 views
2

J'essaye actuellement de mettre en place un petit site qui tire des ensembles de flickr en utilisant JavaScript et JSON. Tout fonctionne bien sauf que l'ordre des photos sur le site diffère de celui de l'ensemble sur Flickr. J'ai cherché ceci beaucoup pour une solution, mais n'ai eu aucune chance. Quelqu'un a déjà eu ce problème? et/ou connaissez une solution? Mon code actuel est:Conserver la commande de flux Flickr API

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); 
} 

Répondre

1

après plus regardant à travers l'api, je me suis retrouvé à l'aide du rest au lieu de feeds qui apporte dans l'ordre correctement. Malheureusement vous ne pouvez pas accéder aux grandes images de cette façon, mais l'information pour y accéder est fournie, donc il a fallu créer le img src pour chaque image en boucle:

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); 
}