Flickr e PHP: interagire con le API utilizzando la classe phpFlickr
Pagina 1 di 5
Flickr è un servizio messo a disposizione dal gruppo Yahoo!, lo stesso che fornisce il noto motore di ricerca, per l'upload e la condivisione di immagini e video, in particolare di fotografie digitali; Flickr funziona in modo semplice: ci si iscrive, si uploadano le immagini e si decide se condividerle con tutti, soltanto con alcuni contatti o se renderle private.
Per interagire con Flickr tramite il proprio sito Web è disponibile un'apposita classe, denominata phpFlickr, rilasciata sotto licenza Open Source e scaricabile da questa pagina, che mette a disposizione i metodi e le proprietà necessarie per interfacciarsi al servizio.
Prima di passare al codice, è importante sottolineare che lo sviluppatore che intende utilizzare phpFlickr, deve possedere un dato che potrà essere recuperato dall'App Garden di Flickr, parliamo dell'API key che permette all'utilizzatore di autenticare le proprie applicazioni al servizio.
Visualizzare le immagini di un utente
Una volta recuperata l'API Key sarà possibile utilizzarla per l'istanza della classe e per la creazione dell'oggetto phpFlickr; il codice seguente mostra come sia possibile inserire in una pagina del proprio sito Web alcune immagini prelevate direttamente da quelle conservate all'interno del proprio spazio su Flickr:
<?php
// inclusione della classe phpFlickr
@include("phpFlickr/phpFlickr.php");
// istanza della classe e creazione dell'oggetto phpFlickr
// l'argomento è l'API key di Flickr
$istanza = new phpFlickr("LATUAAPIKEY");
// inizializzazione del contatore per le immagini
$mul = 0;
// estrazione dell'id corrispondente al nome utente
$username = $istanza->people_findByUsername('ILTUONOMEUTENTE');
// estrazione dei link relativi alle immagini
$collegamento = $istanza->urls_getUserPhotos($username['id']);
// definizione del numero di immagini da visualizzare ("20")
$images = $istanza->people_getPublicPhotos($username['id'], NULL, NULL, 20);
// ciclo di visualizzazione delle immagini
foreach ((array)$images['photos']['photo'] as $image) {
// link all'immagine originale
echo "<a href=\"".$collegamento.$image['id']."\">";
echo "<img border=\"0\" alt=\"".$image['title']."\" src=\"".$istanza->buildPhotoURL($image,"Square")."\">";
echo "</a>\n";
// incremento del contatore
$mul++;
// numero di immagini per ciascuna riga ("3")
if ($mul % 3 == 0) {
echo "<br>\n";
}
}
?>
Per poter visualizzare le immagini del proprio account, è necessario che queste siano visibili pubblicamente; come è possibile notare nell'esempio proposto, la prima operazione da effettuare sarà quella relativa all'inclusione del file di classe, fatto questo, sarà necessario passare la propria API Key all'istanza della classe stessa, al fine di creare un oggetto phpFlickr.
La fase successiva prevede di passare al metodo people_findByUsername(), il nome dell'utente del quale si vogliono mostrare le immagini, in questo modo sarà possibile recuperarne l'id, cioè l'identificativo univoco dell'account in Flickr.
L'id verrà utilizzato per l'estrazione delle immagini, l'applicazione utilizza infatti il metodo people_getPublicPhotos() per raccogliere i file relativi all'identificatore estratto e renderli disponibili per la visualizzazione nella quantità stabilita dal numero passato ad esso come ultimo argomento (in questo caso "20" immagini); sarà così disponibile un array che potrà essere ciclato per la creazione di una galleria sul modello della seguente:

Da notare l'utilizzo del metodo buildPhotoURL() che consente di recuperare il percorso interno a Flickr di ciascuna immagine.







