Moduł Flickr::API
Uniwersytet Gdański - Instytut Matematyki - Zakład Informatyki - Strona domowaSpis treści
Obsługa modułu Flickr::API
O czym to jest
Moduł Flickr::API pozwala na wygodne korzystanie z API udostępnionego przez Flickr.com.
Instalacja
sudo perl -MCPAN -e 'install Flickr::API'
Metody
- new
Do utworzenia obiektu Flickr::API wykorzystujemy wartości API key oraz secret (więcej o rych wartościach w rozdziale Flickr API):
$api = Flickr::API->new({'key'=>$apiKey, 'secret'=>$secret});
- execute_method($method, $args)
Metoda konstruuje obiekt Flickr::API::Request, wykonuje metodę Flickr API podaną w parametrze $method (opis wszystkich metod znajdziesz w dokumentacji Flickr API) z parametrami podanymi w $args. Zwaracany jest obiekt Flickr::API::Response.
- execute_request($request)
Metoda wykonuje żądanie Flickr::API::Request wskazywane przez parametr $request. Zwraca obiekt Flickr::API::Response.
- request_auth_url($perms,$frob)
Metoda zwraca obiekt URI który reprezentuje adres URL służący do generowania tokena autoryzacyjnego dla naszej aplikacji. Parametr $perms określa prawa dostępu dla aplikacji np. write. Parametr $frob służy do identyfikacji sesji, wartość tą uzyskujemy przez wywołanie funkcji flickr.auth.getFrob z Flickr API.
Flickr API
By nasza aplikacja mogła wykorzystywać API udostępnionego przez Flickr.com musi posiadać API key oraz secret. Te dwie wartości generujemy przez formularz na stronie http://www.flickr.com/services/api/key.gne (oczywiście musimy posiadać konto na Flickr.com). Służą one do identyfikacji programu korzystającego z serwisu. Kolejny etap to zaakceptowanie przez nas aplikacji, która będzie korzystała z naszego konta. W tym celu musimy wygenerować token autoryzacyjny. Możemy to zrobić poprzez wykonanie następującego skryptu:
use strict;
use Flickr::API;
my $apiKey = '(tutaj naszaj API key)';
my $secret = '(tutaj secret związany z API key)';
sub getFrob {
my $flickr_api = shift;
my $res = $flickr_api->execute_method("flickr.auth.getFrob");
return undef unless defined $res and $res->{success};
return $res->{tree}->{children}->[1]->{children}->[0]->{content};
}
sub getToken {
my $flickr_api = shift;
my $frob = shift;
my $res = $flickr_api->execute_method("flickr.auth.getToken",{ 'frob' => $frob } );
return undef unless defined $res and $res->{success};
return $res->{tree}->{children}->[1]->{children}->[1]->{children}->[0]->{content};
}
my $tkn = Flickr::API->new({'key'=>$apiKey, 'secret'=>$secret});
my $frob = getFrob($tkn);
my $url = $tkn->request_auth_url('write', $frob);
print "Przejdź do strony :\n",
"$url\n",
"Wykonaj zamieszczone na niej instrukcje.\n",
"Naciśnij enter.\n";
<STDIN>;
my $token = getToken($tkn, $frob);
print $token;
Linki
http://www.flickr.com/services/api/ - dokumentacja Flickr API
http://search.cpan.org/~iamcal/Flickr-API-0.08/lib/Flickr/API.pm - oryginalna dokumentacja modułu
Kontakt i informacje o autorze opracowania
Autor: Marcin Rutkowski
Email: m.rutkowski@xtr.net.pl