2010-12-08 25 views
11

J'essaie d'obtenir un ensemble spécifié à partir de Flickr et ensuite afficher les images dans cet ensemble en utilisant l'API JSON et REST. Voici le code que je utilise:JQuery JSON Flickr API Retour des photos dans un ensemble

$.getJSON("http://api.flickr.com/services/rest/?method=flickr.photosets.getPhotos&api_key=xxx&set=72157623858739780&format=json&jsoncallback=?", function(data){ 
    $.each(data.items, function(i,item){ 
    $("<img/>").attr("src", item.media.m).appendTo("#images"); 
    }); 
}); 

J'ai enlevé la clé api de l'exemple. L'URL avec ma clé, quand tapé dans mon navigateur, renvoie l'erreur suivante:

jsonFlickrApi({"stat":"fail", "code":1, "message":"Photoset not found"}) 

Je sais que le set id est correct, que la navigation à http://www.flickr.com/photos/[email protected]/sets/72157623858739780/ fonctionne très bien.

MISE À JOUR

J'ai réussi à faire fonctionner les choses. Voici mon code révisé au cas où d'autres essaient de le comprendre.

function FlickrPhotoSet(){ 



    //SET API CALL BASED ON INPUT 
    var apiCall = "http://api.flickr.com/services/rest/?format=json&method=flickr.photosets.getPhotos&photoset_id=THESET&per_page=10&page=1&api_key=XXX&jsoncallback=?"; 

    //PRINT API CALL (DEBUG)  
    $("<span>").html(apiCall+"<br>").appendTo("body"); 

    //SEND API CALL AND RETURN RESULTS TO A FUNCTION  
    $.getJSON(apiCall, function(data){ 

     //LOOP THROUGH DATA 
     $.each(data.photoset.photo, function(i,photo){ 

     //LINK TO IMAGE SOURCE 
     var img_src = "http://farm" + photo.farm + ".static.flickr.com/" + photo.server + "/" + photo.id + "_" + photo.secret + "_" + "s.jpg"; 

     //LINK TO IMAGE PAGE (REQUIRED BY FLICKR TOS) 
     var a_href = "http://www.flickr.com/photos/" + data.photoset.owner + "/" + photo.id + "/"; 

     //PLACE IMAGE IN IMAGE TAG AND APPEND TO IMAGES DIV 
     $("<img/>").attr("src", img_src).appendTo("#image_block") 

     //WRAP IN LINK 
     .wrap(("<a href='" + a_href + "'></a>")) 
     }); 

    }); 


}; 
+0

Quelle est la question ci-dessus ?? vous voulez dire que le scintillement ne renvoie pas les données? – kobe

+1

tapez l'URL directement sur le navigateur, si elle donne les mêmes données d'erreur, ce qui signifie que vos données d'URL sont erronées, il n'y a pas de problème en javascript – kobe

Répondre

2

From the flickr API docs il ressemble à votre paramètre set dans votre URL doit être photoset_id.

+0

Merci! J'ai décidé d'aller sur la route pure javascript et je l'ai mis au travail. –