Integracja galerii astrofotek na flickr.com z własną stroną internetową

Flickr.com to największa "galeria zdjęć" na świecie. Każdy za darmo może się zarejestrować i wrzucać tam swoje zdjęcia i krótkie klipy filmowe. Serwis ten jest świetny do przetrzymywania astrofotografii. Zdjęcia umieszczone we Flikrze możemy także wyświetlać na własnej stronie internetowej. Jeżeli mamy dostęp do PHP5 na serwerze (nie powinno być z tym problemu) to możemy za pomocą prostego skryptu wyświetlać np. najnowsze zdjęcia z wybranego albumu.

Oto prosta klasa pobierająca ostatnie zdjęcia z podanego albumu
<?php
// to się nie zmienia
class flickr
{
public function __construct($api_key)
	{
	$this->api_key = $api_key;
	}
public function getPhotos($photoset_id)
	{
	$x = simplexml_load_file('http://www.flickr.com/services/rest/?method=flickr.photosets.getPhotos&extras=url_sq,url_o&photoset_id='.$photoset_id.'&api_key='.$this->api_key);
	$ret = array();
	foreach($x->photoset->photo as $res)
		{
		$ret[] = array('id' => (int)$res['id'], 'title' => (string)$res['title'], 'sq' => (string)$res['url_sq'], 'orig' => (string)$res['url_o']);
		}
	return $ret;
	}
}

// przykładowe wykorzystanie
$owner = 'TUTAJ ID UŻYTKOWNIKA';
$a = new flickr('KLUCZ API');
$pics = $a->getPhotos('ID ALBUMU');

foreach($pics as $pic)
	{
	print '<a href="http://www.flickr.com/photos/'.$owner.'/'.$pic['id'].'/." title="'.$pic['title'].'"><img src="'.$pic['sq'].'" alt="'.$pic['title'].'" /></a>';
	}
Żeby skrypt zadziałał potrzebujemy:
  • Klucz API - rejestrujemy (za darmo) własną stronę/aplikację :) Dostaniemy API KEY - czyli klucz aplikacji, który wstawiamy do skryptu.
  • ID UŻYTKOWNIKA oraz ID ALBUMU - wystarczy wejść na nasz (albo inny album jaki chcemy wyświetlić) album, np: http://www.flickr.com/photos/98476668@N00/sets/72157611603568383/.
    • Element linka z @ to ID UŻYTKOWNIKA - 98476668@N00
    • Ostatni element - 72157611603568383 to ID ALBUMU
Po podaniu wszystkich danych wyświetlona zostanie lista miniatur ostatnio dodanych zdjęć do albumu (photostream):
flickastro
Można oczywiście wyświetlać zdjęcia z kilku albumów na jednej stronie. API Flickra jest szerokie i można także np. wyświetlać zdjęcia wyszukane po danej frazie kluczowej, wystarczy trochę wiedzy lub pomocy programistycznej. W razie pytań pisz śmiało ;)

Do niektórych CMSów dostępne są moduły integrujące różne opcje Flickra - jeżeli korzystasz z popularnego CMSa to taki moduł może ułatwić ci życie :)

RkBlog

Oprogramowanie astronomiczne, 17 November 2009, Piotr Maliński

Comment article
RkBlog main page Search RSS Contact