DragonFly On-Line Manual Pages
FLICKR_OAUTH_AUTHENTICATION(1) User Contributed Perl Documentation
DESCRIPTION
The original Flickr Authentication has been deprecated in favor of
OAuth. This example script shows one way to use Flickr::API to go from
having just the consumer_key and consumer_secret (or api_key and
api_secret using Flickr's terminology) to an authenticated token.
USAGE
./flickr_oauth_authentication.pl \
--consumer_key="24680beef13579feed987654321ddcc6" \
--consumer_secret="de0cafe4feed0242"
The script will produce a url for you to enter into a browser then
prompt you to enter the callback url that is returned by flickr.
It then does a Data::Dumper dump of the parameter keys and values which
can be recorded for future use. If you want to make it more complete,
you could modify the script to format and dump the information into a
config file of some type.
PROGRAM FLOW
Following the flow laid out in
<https://www.flickr.com/services/api/auth.oauth.html>
Flickr Step 1, Application: get a request token
The script takes the consumer_key and consumer secret and creates a
Flickr::API object. It then calls the oauth_request_token method with
an optional callback specified.
my $api = Flickr::API->new($cli_args);
$api->oauth_request_token({'callback' => 'https://127.0.0.1'});
Flickr Step 1, Flickr: return a request token.
The oauth request token is saved in the Flickr::API object.
Flickr Step 2. Application: Direct user to Flickr for Authorization
The script now calls the oauth_authorize_uri method with the optional
perms parameter. The Flickr::API returns a uri which (in this case) is
cut in the terminal and pasted into a browser.
my $request2 = $api->oauth_authorize_uri({'perms' => 'read'});
print "\n\nYou now need to open: \n\n$request2\n\nin a browser.\n ";
Flickr Step 2. Flickr: Prompts user to provide Authorization
Assuming all is well with the request token and oauth_authorize_uri
Flickr will open a webpage to allow you to authenticate the application
identified by the consumer_key to have the requested perms.
Flickr Step 2. User: User authorizes application access
This is you, granting permission to the application.
Flick Step 2, Flickr: redirects the user back to the application
Flickr returns an oauth_verifier in the callback. In this script you
cut the callback from the browser and paste it into the terminal to
continue on to the next step.
$response2 = $term->readline('Enter the callback redirected url: ');
The cutting and pasting is a little crude, but you only have to do it
once.
Flickr Step 3, Application: exchange request token for access token
The script takes the request token and the oauth_verifier and exchanges
them for an access token.
my $request3 = $api->oauth_access_token(\%hash2);
Flickr Step 3, Flickr: returns an access token and token secret
Flickr will return an access token and token secret if all has gone
well. These are stashed in the Flickr::API object.
Save the access information
How you save the access information is outside the scope of this
example. However, the oauth_export_config method can be used to
retrieve the oauth parameters from the Flickr::API object.
my %oconfig = $api->oauth_export_config('protected resource');
print Dumper(\%oconfig);
AUTHOR
Louis B. Moore <lbmoore at hethcote.com>
COPYRIGHT AND LICENSE
Copyright 2014, Louis B. Moore
This program is free software; you may redistribute it and/or modify it
under the same terms as Perl itself.
perl v5.20.2 2015-06-09 FLICKR_OAUTH_AUTHENTICATION(1)