Flickr - Buscar fotos por Tag com ActionScript 3.0
Autor: Bruno Soares | Publicado: 2009-04-24T14:31:00-03:00

Vamos a um exemplo de uso da API do Flickr, bem simples pois a API do Flickr é realmente simples (isso não quer dizer que ela não é poderoza).Aqui está o resultado de pouco código:Em primeiro lugar você vai precisar de uma api_key e pode conseguir neste link "Solicitar uma nova chave API". Com sua KEY em mão vamos chamar a api buscando uma tag: http://api.flickr.com/services/rest/?api_key=[SUA-API-KEY]&amp;method=flickr.photos.search&amp;tags=[TAG]O resultado esperado é este:&lt;rsp stat="ok"&gt;&lt;photos page="1" pages="10" perpage="100" total="1000"&gt; &lt;photo id="3411384625" owner="23534352@N07" secret="74167a8895" server="3374" farm="4" title="_MG_0611" ispublic="1" isfriend="0" isfamily="0" /&gt; &lt;photo id="3411401933" owner="23534352@N07" secret="46c095f827" server="3585" farm="4" title="_MG_0641" ispublic="1" isfriend="0" isfamily="0" /&gt; ...&lt;/photos&gt;&lt;/rsp&gt;Vamos entender o link, rest é o formato que você deseja receber a resposta, atualmente o Flickr suporta 5 formatos (REST, XML-RPC, SOAP, JSON e PHP), usamos o rest porque o ActionScript trabalha muito bem com ele (XML). api_key é a chave que você solicitou acima. method, é o método de busca (você pode encontrar muitos no link da API, http://www.flickr.com/services/api/). E por fim tags que é um parâmetro pelo qual você busca.Agora que temos o XML de resposta podemos construir links para as fotos, para a página de galeria do usuário encontrado, para o perfil do usuário entro outros. O link que eu acho mais importante é o da imagem e para consegui-lo basta concatenar alguns dados presentes no XML dessa forma:http://farm{farm-id}.static.flickr.com/{server-id}/{id}_{secret}.jpghttp://farm{farm-id}.static.flickr.com/{server-id}/{id}_{secret}_[mstb].jpghttp://farm{farm-id}.static.flickr.com/{server-id}/{id}_{o-secret}_o.(jpg|gif|png)O que é mstb?s) quadrado pequeno 75x75.t) miniatura, 100 no lado mais longo.m) pequeno, 240 no lado mais longo.-) médio, 500 no lado mais longo.b) grande, 1.024 no lado mais longo (existe apenas para imagens originais muito grandes).o) imagem original, jpg, gif ou png, dependendo do formato de origem.Na página URLs da origem da foto você encontra tudo bem explicado.Veja no exemplo abaixo o link (do primeio nó 'photo')  para a imagem:http://farm4.static.flickr.com/3374/3411384625_74167a8895.jpgAgora tudo isso com ActionScript (Load do XML e parse para gerar o link):var apiKey:String = "[SUA-API-KEY]";var tag:String = "arduino";var xmlLoader:URLLoader = new URLLoader();xmlLoader.addEventListener(Event.COMPLETE, onComplete);var url:String = "http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=" + apiKey + "&tags=" + tag;trace("URL: ", url);xmlLoader.load(new URLRequest(url));function onComplete(event:Event):void{ var xmlData:XML = new XML(event.target.data); if (xmlData.@stat != "ok") {  trace("ERROR: " + xmlData.err.@msg);  return; }  for (var i:uint = 0; i < xmlData.photos.photo.length(); i++) {  var photo:Object = {   id:xmlData.photos.photo[i].@id,   owner:xmlData.photos.photo[i].@owner,   secret:xmlData.photos.photo[i].@secret,   server:xmlData.photos.photo[i].@server,   farm:xmlData.photos.photo[i].@farm,   title:xmlData.photos.photo[i].@title  };  photo.url = "http://farm" + photo.farm + ".static.flickr.com/" + photo.server + "/" + photo.id + "_" + photo.secret + ".jpg";  trace("Imagem: ", photo.url); }}Repare que você pode adicionar dois parâmetros no link para controlar a paginação das fotos (page e perpage).Conteúdo relacionado:Post original: http://blog.bsoares.com.br/flash/flickr-search-photos-by-tag-with-actionscriptFlickr API: http://www.flickr.com/services/api/XML ActionScript 3.0: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/XML.html