#!/usr/bin/perl
#
# Method Test Login
#
=pod
=head1 NAME
flickr_method_test_echo.pl
a login example for using either OAuth or Old School Flickr
=cut
use warnings;
use strict;
use Flickr::API;
use Getopt::Long;
=pod
=head1 DESCRIPTION
This script uses either the Flickr or OAuth parameters to call
the flickr.test.login method.
=head1 USAGE
flickr_method_test_login.pl --use_api=[oauth, flickr] \
--key="24680beef13579feed987654321ddcc6" \
--secret="de0cafe4feed0242" \
--token="72157beefcafe3582-1ad0feedface0e60" \
[--token_secret="33beef1face212d"]
Depending on what you specify with B<--use_api> the flickr.test.login
call will use the appropriate parameter set. The B<--token_secret> is
used by OAuth, but not by the original Flickr.
=cut
my $config = {};
my $api;
my %args;
GetOptions(
$config,
'use_api=s',
'key=s',
'secret=s',
'token=s',
'token_secret=s',
);
=head1 CALL DIFFERENCES
if ($config->{use_api} =~ m/flickr/i) {
$api = Flickr::API->new({
'key' => $config->{key},
'secret' => $config->{secret},
'auth_token' => $config->{token},
});
$args{'api_key'} = $config->{key};
$args{'auth_token'} = $config->{token};
}
elsif ($config->{use_api} =~ m/oauth/i) {
$api = Flickr::API->new({
'consumer_key' => $config->{key},
'consumer_secret' => $config->{secret},
'token' => $config->{token},
'token_secret' => $config->{token_secret},
});
$args{'consumer_key'} = $config->{key};
$args{'token'} = $config->{token};
}
else {
die "\n --use_api must be either 'flickr' or 'oauth' \n";
}
=cut
if ($config->{use_api} && $config->{use_api} eq 'flickr') {
$api = Flickr::API->new({
'key' => $config->{key},
'secret' => $config->{secret},
'auth_token' => $config->{token},
});
$args{'api_key'} = $config->{key};
$args{'auth_token'} = $config->{token};
}
elsif ($config->{use_api} && $config->{use_api} eq 'oauth') {
$api = Flickr::API->new({
'consumer_key' => $config->{key},
'consumer_secret' => $config->{secret},
'token' => $config->{token},
'token_secret' => $config->{token_secret},
});
$args{'consumer_key'} = $config->{key};
$args{'token'} = $config->{token};
}
else {
die "\n --use_api must be either 'flickr' or 'oauth'\n";
}
my $response = $api->execute_method('flickr.test.login', \%args);
my $ref = $response->as_hash();
if ($api->is_oauth) {
print "\nOAuth formated login status: ",$ref->{stat},"\n";
}
else {
print "\nFlickr formated login status: ",$ref->{stat},"\n";
}
exit;
__END__
=pod
=head1 AUTHOR
Louis B. Moore <lbmoore at cpan.org> Based on the code in Flickr::API.
=head1 LICENSE AND COPYRIGHT
Copyright 2014, Louis B. Moore
This program is released under the Artistic License 2.0 by The Perl Foundation.
=cut