Flickr API für ASP.NET

written by devangelist on August 3, 2012 in API and ASP.NET with no comments

Flickr ist mittlerweile eine sehr große Foto-Community und bietet eine erstaunlich komplette API. Und ebenso komplett, jedenfalls von der Funktionalität ist die FlickrNet API. Ein kleiner Minuspunkt wegen der mangelnden Dokumentation aber mit ein wenig Überlegen sollte das meiste machbar sein.

Die aktuelle Version kann ab dem .NET Framework 2.0 eingesetzt werden, egal ob es sich um eine ASP.NET Webforms, ASP.NET MVC oder Silverlight App handelt.

Als erster Schritt muss sich die Anwendung bei Flickr Authentifizieren und dies geschieht über einen ApiKey und ein SharedSecret, welche beide direkt nach der Anmeldung bei Flickr erhältlich sind.

var flickr = new FlickrNet.Flickr(apiKey, sharedSecret)

Konfigurationsmöglichkeiten gibt es für das cachen (Location, Timeout, etc.)

Die wohl in 90% der Fälle verwendete Abfrage betrifft eine Liste von Alben oder Photos und ist sehr einfach. Das einzige was dazu benötigt wird, ist die UserId.

Hinweis: Bei Flickr manchmal etwas Tricky die UserId zu bekommen (steht in der URL, aber nur manchmal ;-) ) – wenn nur der UserName gegeben ist, kann über ein Tool idGettr die Id ermittelt werden. Es gibt in der API ebenfalls Möglichkeiten die Id herauszufinden, allerdings sollten für solche Sachen keine “API Requests” verschwendet werden. Klingt logisch, oder?

Trotzdem, das Äquivalent in der API sieht wie folgt aus:

var user = flickr.PeopleFindByUserName("<UserName>");
var userId = user.UserId;
var photosets = flickr.PhotosetsGetList(userId);
foreach(var photoset in photosets)
{
    photoset.PhotosetId; // Die Id kann verwendet werden um die Fotos auszulesen (später dazu mehr)
    photoset.PhotosetThumbnailUrl; // Kann als Vorschaubild verwendet werden
    photoset.Title;
    photoset.NumberOfPhotos;
    // ...
}

Sind die Photosets nun gegeben, dann wird der nächste Schritt sein, bei Klick auf das Album dessen Fotos anzuzeigen (Ja, im 21. Jahrhundert wird das über AJAX gemacht, wir machen es aber auf die alte, unkonventionelle Art und Weiße mit einem QueryString).

var photosetId = HttpContext.Current.Request.QueryString("photosetId");
var photos = flickr.PhotosetsGetPhotos(photosetId);

Ein kleiner Trick mit Linq und es kann z.B. ein einfacher Pager eingebaut werden:

var photosPerPage = 5;
var currentPage = HttpContext.Current.Request.QueryString("page");
foreach (var photo in photos.Skip(photosPerPage * (currentPage - 1)).Take(photosPerPage)
{
    // Auch hier gibt es wieder viele Eigenschaften, 90% davon sind selbsterklärend.
    photo.LargeUrl;
    photo.Title;
    // ...
}

Natürlich können mit der API nicht nur Photos und Alben ausgelesen werden, sondern auch Kommentare, Benutzer und alles was es bei Flickr so gibt.
Ebenfalls interessant ist die Möglichkeit auf private Alben zugreifen zu können um sich somit quasi die Photogallery auf der eigenen Webseite über Flickr zu importieren.

Ein weiterer Punkt der für die Verwendung von Flickr spricht ist die Vielfalt der Apps, von den mobilen (IPhone, Android) bis zu in-Browser Bildbearbeitungen wie Picnik.

Also dann, immer schön Photos sharen!

Flickr API für ASP.NET: 1 Stern2 Sterne3 Sterne4 Sterne5 Sterne 4,50 von 5 Punkte, 4 abgegebene Stimmen.
Loading ... Loading ...

About the Author

Roberto Bez ist passionierter Webentwickler und TechLead bei der HolidayCheck AG. Für Roberto bedeutet das Entwickeln nicht nur Arbeit, sondern auch Freude, Motivation und täglich neue, aufregende Herausforderungen. Besonders gerne setzt er sich mit neuen Webtechnologien sowie Datenbanken aller Art auseinander und versucht diese in die tägliche Anwendungsentwicklung miteinzubringen. Neben dem Entwickeln trifft man ihn gerne Abends beim Laufen oder im Sommer bei Mountainbike-Touren durch die schönen Berge Südtirols.