Ancora SOA e Flickr...
-
[09/06/2008]
Giochiamo con PHP e le API di Flickr
Le API di flickr consentono di interagire con Flickr e le foto che contiene attraverso chiamate ai suoi Web Services.
La libreria phpFlickr fornisce una classe i cui metodi ricalcano i web services di flickr. Attraverso questa classe č possibile interagire con flickr in pochissimi step: il parsing degli XML scompare e il lungo iter di autenticazione diventa quasi indolore.
Il mio esercizio
Volevo una funzione che prendesse le mie 20 foto con maggior interestingness e che ne aggiornasse in automatico la data di inserimento in modo da mostrarle sempre in testa al mio album.
L'operazione si riassume in:
- Autenticazione
- Estrazione del mio ID (passaggio inutile ma per esercizio l'ho lasciato)
- Ricerca delle mie 20 foto pių interessanti
- Aggiornamento della data di inserimento delle 20 foto, partendo dal timestamp corrente per la pių interessante e decrementanto via via un secondo per ogni foto successiva in classifica in modo da averle ordinate anche nell'album.
Il codice č mostrato di seguito.....
<?php
require_once('phpFlickr-2.2.0/phpFlickr.php');
$api_key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxx';
$secret = 'xxxxxxxxxxxxxx';
$f = new phpFlickr($api_key, $secret, false);
if(empty($_GET['frob'])) {
$f->auth('write');
} else {
$auth_token = $f->auth_getToken($_GET['frob']);
if (!empty ($f->error_code)) {
die( $f->error_code." - ".$f->error_msg."\n");
}
echo "Authentication with Flickr successful.
\n";
}
$me = $f->people_findByUsername('ludovico caldara');
if (!empty ($f->error_code)) {
die( $f->error_code." - ".$f->error_msg."\n");
}
$mytop_photos = $f->photos_search(array(
"user_id" => $me['nsid'],
"per_page" => "20",
"sort" => "interestingness-desc",
"extras" => "views"
)
);
if (!empty ($f->error_code)) {
die( $f->error_code." - ".$f->error_msg."\n");
}
$now = time();
foreach ($mytop_photos['photo'] as $key => $photo) {
$f->photos_setDates($photo['id'],$now-$key);
if (!empty ($f->error_code)) {
printf ("id: %s - "%s" - caught error %s - %s\n",
$photo['id'], $photo['title'],$f->error_code,$f->error_msg);
} else {
printf ("id: %s - "%s" - modified to timestamp %d\n",
$photo['id'], $photo['title'],time()-$key);
}
}
?>
Happy coding!
Categoria: PHP -
Autore: ludovico -
Inserisci Commento