Začíname s Picasa Web API
Čo je to Picasa Web Albums Data API?
Pod týmto označením sa skrýva rozhranie, ktoré umožňuje integrovať službu Picasa Web Albums (ďalej len PWA) do vašich webov a aplikácií. Rozhranie umožňuje vytvárať albumy, zasielať a sťahovať obrázky, komentáre k obrázkom a tisíc ďalších vecí.Niektoré z mála vecí, ktoré využívajú PWA Data API:
- Aplikácie na jednoduché uploadovanie obrázkov zo zariadení, desktopových aplikácií a ostatných webových služieb
- Mobilný klienti na prezeranie a uploadovanie obrázkov do PWA
- Integrácia PWA s blogovacími nástrojmi k jednoduchému zdielaniu obrázkov na vašich blogoch
- Digitálne foto rámiky
- …
Pre stručný prehľad je k dispozícii video:
Domovská stránka PWA Data API: http://code.google.com/apis/picasaweb/
A čo je to Picasa Flash API?
Pod týmto názvom sa skrýva klientské rozhranie, ktoré umožňuje čo najjednoduchšie pristupovať priamo k PWA pomocou Flash Player-a. Picasa Flash API (ďalej len PFA) je read-only Actionscript 3 rozhranie k Picasa Web Albums. Umožňuje listovať v používateľských albumoch, obrázkoch, komentároch, tagoch alebo vyhľadávať obrázky v Picasa komunite.Domovská stránka Picasa Flash API: http://code.google.com/p/picasaflashapi/
Aký je teda rozdiel?
- Picasa Web Albums Data API je rozhranie k službe Picasa Web Albums od Google.
- Picasa Flash API je Flash/Flex knižnica.
- Pomocou Picasa Flash API posielate requesty z Flash Player-a na Picasa Web Albums Data API rozhranie.
- Picasa Web Albums Data API žije na serverovej strane Google, Picasa Flash API beží u klienta.
Ako s tým súvisí Picasa?
Výborná otázka. Picasa je desktopový klient pre Mac, Linux alebo Windows. Picasa slúži na jednoduchú a rýchlu organizáciu, úpravu a odovzdávanie vašich fotografií na web. Áno, Picasa je tiež len klient (a naviac výkonný), ktorý okrem iných vlastností, možností a funkcií taktiež využíva Picasa Web Albums Data API napr. k odovzdávaniu obrázkov na web.Prezeranie a vyhľadávanie
Poďme si to hneď všetko vyskúšať :). Každý url request smerom na PWA má nasledovnú schému:http://<api_url>/<collection_type>/<projection_type>/<context>?<parameters>
Začnime s jednoduchým receptom - zoznamom používateľových albumov. Nato aby sme získali tento zoznam potrebujeme nasledovné ingrediencie:
1. Adresa Picasa Web Albums Data API:
Môžeme použiť adresu "http://picasaweb.google.com/data" alebo jej alias "http://photos.googleapis.com/data". Ja radšej používam tú druhú. Dôvodom je crossdomain.xml súbor, ktorý musí byť načítaný do Flash Player-a pred akýmkoľvek iným requestom smerom na PWA (knižnica to spraví automaticky za vás). Týmto si zabezpečíme, že PWA neodmietne našeho klienta a Flash Player spracuje PWA odpoveď. Viac k tejto téme je popísané tu. A keďže crossdomain.xml súbor sa nachádza na http://photos.googleapis.com/data/crossdomain.xml, používam radšej ten druhý tvar. Ak by sme pristupovali k PWA cez prvú adresu, môžeme listovať pomocou PFA aj privátne albumy v prípade, že sme prihlásený cez browser do google účtu, pretože koláčik obsahuje adresu http://picasaweb.google.com/data a PWA nám vráti aj naše vlastné privátne albumy.
2. Collection type:
Keďže PFA je read-only, budeme používať iba "/feed". Collection type "/media" by sme využili pri zápise dát z klienta smerom na server, napríklad pri aktualizácii alebo pri odovzdávaní fotografií.
3. Projection type:
Máme opať niekoľko možností. V prípade, že použijeme "/base", odpoveď z PWA bude základný Atom feed bez akýchkoľvek rozširujúcich elementov. Tento typ projekcie je read-only. My však chceme dostať z PWA aj dodatočné informácie o fotografiách ako napr. ich veľkosť, adresy náhľadov atď. a preto budeme používať Projection type "/api". Ak by nám Google v budúcnosti umožnil zapisovať do PWA z Flash Player-a, Projection type "/api" je nato pripravené (read-write).
4. Context:
Posledná prísada je hodnota, ktorá definuje aké zdroje chceme na PWA používať. Podľa tohto kontextu rozdeľujeme requesty na:
- User-based feed: /user/<userid>
- Contacts-based feed: /user/<userid>/contacts
- Album-based feed: /user/<userid>/albumid/<albumid>
- Photo-based feed: /user/<userid>/albumid/<albumid>/photoid/<photoid>
- Community search feed: /all
- Featured photos feed: /featured
Po správnom zmiešaní ingrediencií pre zoznam albumov užívateľa dostaneme nasledovné url: http://photos.googleapis.com/data/feed/api/user/thisispinkfu
PWA nám odpovie nasledovne (skrátene kvôli prehľadnosti):
<feed ...>
<id>http://photos.googleapis.com/data/feed/api/user/thisispinkfu</id>
<title>thisispinkfu</title>
...
<entry>
<id>http://photos.googleapis.com/data/entry/api/user/thisispinkfu/albumid/5296410852174025857</id>
...
<category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/photos/2007#album"/>
<title>Pinholes</title>
<summary>Sharan STD-35 and Diana pinholes</summary>
.
.
.
</entry>
<entry>
...
</entry>
...
</feed>
Aby ste nemuseli pracne vytvárať url requesty na PWA a následne parsovať štrúdle odpovedí, pomôže vám Picasa Flash API, ktorá za vás request vytvorí, sparsuje odpoveď a vráti ju zabalenú v pekne otypovanom objekte :)
Zoznam albumov by sme pomocou PFA získali nasledovne:
// vytvorime instanciu servisu
var service : PicasaService = new PicasaService();
// zavolame servisnu metodu, ktora vrati responder
// responder vysle pri uspesnej odpovedi z PWA data event
var responder : PicasaResponder = service.albums.list("thisispinkfu");
responder.addEventListener(PicasaDataEvent.DATA, onGetAlbumsComplete);
// po uspesnej odpovedi
function onGetAlbumsComplete(evt : PicasaDataEvent) : void
{
var item : AlbumEntry;
// prejdeme vsetky <entry>
for(var a : int = 0; a < evt.data.entries.length; a++)
{
item = evt.data.entries[a] as AlbumEntry;
// a vypiseme nazov albumy a jeho linku na picasaweb stranku
trace(item.title.value + " (" + item.links[1].href + ")");
}
}
(GET) http://photos.googleapis.com/data/feed/api/user/thisispinkfu
Pinholes (http://picasaweb.google.com/thisispinkfu/Pinholes)
Redscale (http://picasaweb.google.com/thisispinkfu/Redscale)
Stockholm (http://picasaweb.google.com/thisispinkfu/Stockholm)
Instants (http://picasaweb.google.com/thisispinkfu/Instants)
...
- vyhľadávanie obrázkov s v komunite na základe query a napr. tagov
- použitie geografických hraníc pre obmedzenie výsledkov vyhľadávania na určitú zemepisnú oblasť
- limitovanie vyhľadávania na "obľúbené" fotografie
- …
V stručnosti sme si spravili prehľad čo je to Picasa Web Albums Data API, čo je to Picasa Flash API, načrtli sme ich možnosti a obmedzenia a vytvorili krátky príklad, ako získať zoznam všetkých albumov od Picasaweb používateľa.
Nakoniec už len krátky odkaz na nádherný screen saver, ktorý využíva Picasa Flash API:
http://www.inspirit.ru/exchange/ascii_saver/
- a_[w] | 8. August 2009
- Hi! Can i get User ID by user name through picasaflashapi library?
- Komentujte
- Políčka označené * sú povinné.
