Flickr::APIを使って、photo_idからurlを取得(生成)する
2013年10月9日
そもそもphoto_idから画像のurlを取得するAPIが用意されていれば話が早かったのですが、そんなAPIが無いようなので、getInfoで取得できる情報からurlを生成しようと思います。
#"/usr/bin/env perl
use strict;
use warnings;
my $photo_id = 123456;
my $fa = Flickr::API->new({
key => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
secret => 'xxxxxxxxxxxxxxxxxxxx',
unicode => 0,
});
my $res = $fa->execute_method(
'flickr.photos.getInfo',
{
photo_id => $photo_id,
}
);
die unless ( $res->{'success'} );
my $url = '';
for my $tree ( @{ $res->{'tree'}->{'children'} } ) {
next unless ( exists $tree->{'name'} );
next unless ( $tree->{'name'} eq 'photo' );
$url = sprintf(
'http://farm%d.staticflickr.com/%d/%d_%s.%s',
$tree->{'attributes'}->{'farm'},
$tree->{'attributes'}->{'server'},
$tree->{'attributes'}->{'id'},
$tree->{'attributes'}->{'secret'},
$tree->{'attributes'}->{'originalformat'}
);
last;
}
print $url;
結構ざっくりですが、こんな感じでurlが生成可能です。
サイズ違い(_sとか_mとか)は適時追加すれば宜しいかと。