Flickr API per .NET

Premessa

Le risorse messe a disposizione dalla rete per facilitare lo sviluppo delle applicazione sono veramente notevoli. In nome del web 2.0 molte API permettono di decentrare lo sviluppo usufruendo di servizi che sarebbe impegnativo implementare. Oltre a questo si ha il vantaggio di diffondere in rete il proprio nome dando la possibilità ai navigatori di usufruire delle informazioni del proprio sito, in diverse modalità.

Flickr

In questo articolo vedremo come integrare nel proprio sito le foto che si sono condivise su Flickr. Inoltre visto che questo sito, come la maggior parte di quelli da noi costruiti, è in ambiente .NET abbiamo deciso di verificare l'efficacia di una delle numerose librerie segnalate dagli sviluppatori di Flick stesso.

Quindi per prima cosa è necessario scaricare la libreria (vedi link nel box a lato) e copiarla nella nostra directory BIN. La libreria è compatibile con tutte le versioni di .NET superiori alla 1.1+. L'unica dll da copiare è FlickR.dll dalla sottodirectory "Release"

A questo punto non resta che richiedere una API key a flick (lo trovate in http://www.flickr.com/services/api/keys)

Il codice sottostante mostra come richiedere tutte le foto pubbliche legate ad un account (togliendo il pcounter non si limita la richiesta solo alle prime due foto).

Imports FlickrNet Dim apikey As String = "-- Sostituisci con la tua API KEY --" Dim f As Flickr = New Flickr(apikey) Flickr.CacheDisabled = True Dim searchOptions As PhotoSearchOptions = New PhotoSearchOptions() searchOptions.UserId = "-- Sostituisci con il tuo ID" Dim myphotos As Photos = f.PhotosSearch(searchOptions) Dim pcounter As Integer Dim out As New StringBuilder Dim frm As String = "<img alt="""" src=""{0}"" />" For Each p As Photo In myphotos.PhotoCollection out.Append(String.Format(frm, p.WebUrl)) pcounter += 1 If pcounter > 1 Then ' Just for test Exit For End If Next Me.LiteralOut.Text = out.ToString

Per conoscere il vostro userID, che NON è vostro nome visualizzato, andate sull'icona del vostro profilo e lo troverete nelle proprietà: qualcosa tipo http://l.yimg.com/www.flickr.com/images/buddyicon.jpg#123456@N04. Il vostro userID è la parte finale dopo #.

Di seguito il risultato nel caso dell'account Softgens.

Nota importante

Durante l'upload della prima versione del programma nell'ambiente di produzione potreste imbattervi nell'errore

Access to the path '(path locale)\FlickrNet' is denied

Questo problema è dovuto ad un errata impostazione della cache che, non essendo stata impostata, lavora nella directory di default (probabilmente /BIN): l'accesso vietato genera l'errore. Per risolvere il problema potete, come nell'esempio, disabilitare la cache o seguire le indicazioni sul forum CodePlex.

Photosets

Con Flickr è possibile dividere le proprie foto in diversi album chiamati photoset. Il nostro secondo esperimento sarà quello di estrarre solamente le foto di un determinato utente contenute appunto in un photoset.

La lista sottostante mostra tutti i photoset dell'utente Softgens.

 
PhotosetId: 72157606592532329  Url:   OwnerId:   PrimaryPhotoId: 2740546111  Secret:  Server: 3284  Farm: 4
NumberOfPhotos:Title: The village: Cinque Terre  Description: The village Bed & Breakfast
PhotosetThumbnailUrl: http://farm4.static.flickr.com/3284/2740546111_ce97a77750_t.jpg
PhotosetSquareThumbnailUrl: http://farm4.static.flickr.com/3284/2740546111_ce97a77750_s.jpg
PhotosetSmallUrl: http://farm4.static.flickr.com/3284/2740546111_ce97a77750_m.jpg
PhotosetId: 72157605904551214  Url:   OwnerId:   PrimaryPhotoId: 2307572268  Secret:  Server: 3285  Farm: 4
NumberOfPhotos:Title: Memories  Description: New and old friends
PhotosetThumbnailUrl: http://farm4.static.flickr.com/3285/2307572268_6e2a5fd302_t.jpg
PhotosetSquareThumbnailUrl: http://farm4.static.flickr.com/3285/2307572268_6e2a5fd302_s.jpg
PhotosetSmallUrl: http://farm4.static.flickr.com/3285/2307572268_6e2a5fd302_m.jpg
PhotosetId: 72157605904542666  Url:   OwnerId:   PrimaryPhotoId: 2626342582  Secret:  Server: 3012  Farm: 4
NumberOfPhotos:Title: Cats lover  Description: Just cats
PhotosetThumbnailUrl: http://farm4.static.flickr.com/3012/2626342582_951c080a7f_t.jpg
PhotosetSquareThumbnailUrl: http://farm4.static.flickr.com/3012/2626342582_951c080a7f_s.jpg
PhotosetSmallUrl: http://farm4.static.flickr.com/3012/2626342582_951c080a7f_m.jpg

Con un piccolo loop e sempre possibile estrarre tutte le foto appartenenti ad un determinato Photoset

Dim myPhotoSet As Photoset = f.PhotosetsGetPhotos(myphotosets.PhotosetCollection(0).PhotosetId.ToString) For Each p As Photo In myPhotoSet.PhotoCollection out.Append(String.Format(frm, p.ThumbnailUrl)) Next Me.LiteralPhotoset.Text = out.ToString

Ecco il risultato estraendo i thumbnail del primo photoset.

Immagine 001Immagine 005Immagine 007Immagine 009Immagine 013Immagine 014foto b&b 024
ie firefox opera safari Valid XHTML Valid CSS Icra Approved Cosa vogliono dire?
Copyright © 2006/07 Softgens S.r.l. PI 02854230543 info@softgens.com