-
Notifications
You must be signed in to change notification settings - Fork 10
/
README
152 lines (107 loc) · 4.83 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
Flickr::API
===========
An interface to the Flickr API, including OAuth authentication.
INSTALLATION
To install this module type the following:
perl Makefile.PL
make
make test [ MAKETEST_OAUTH_CFG=config_file,
MAKETEST_FLICKR_CFG=other_config,
MAKETEST_VALUES=values_file,
MAKETEST_PERMS={read, write, or delete},
[MAKETEST_OAUTH_AUTHED=1, MAKETEST_FLICKR_AUTHED=1]]
make install
NOTES ON API CHANGES
If you use key and secret when instantiating a new API object, be aware that
the Flickr::API silently changes these to api_key and api_secret for use and
configuration export. Since Flickr is (ambivalently) deprecating their own
authentication in favor of OAuth, in time key and secret will become confusing,
is key api_key? or consumer_key?
For now, key and secret are silently changed. In future releases there will be
a warning when they are used.
NOTES ON TESTING
Testing the Flickr::API can be a bit of a puzzle. You may wish to test
features that require authentication to upload images. You may not want
to expose your key and permissions to a test written by someone you don't
know. To try and allow you to dial in the level of testing you want to
use, there are several environmental variables to work with.
To interact with Flickr during testing, use either MAKETEST_OAUTH_CFG or
MAKETEST_FLICKR_CFG or both. MAKETEST_OAUTH_AUTHED=1, MAKETEST_FLICKR_AUTHED=1
and MAKETEST_PERMS can be used to change aspects of the interactions with
Flickr.
Testing authenticated method calls requires a previously authenticated
consumer key and secret (or api key and secret for Flickr's authentication)
saved in a configuration with the data in Storable.pm format that the tests
can read. Tests will need either 'read' or 'write' permissions. The tests
do not use delete permission to delete. The tests default to 'read'. If you
want to test uploads, you will need a configuration with 'write' or 'delete'
permission. The variable MAKETEST_PERMS can be used to pass in requested
permissions other than 'read'.
If you are testing a previously authenticated configuration, specifying
MAKETEST_OAUTH_AUTHED=1 or MAKETEST_FLICKR_AUTHED=1 will bypass the
authentication tests.
In addition, testing authentication requires, at minimum, your Flickr consumer_key
and consumer_secret; a file with some minimal configuration data in Storable.pm
format that the tests can read and write; the ability to open a url on Flickr;
and the ability to retrieve a redirectfrom Flickr. Since there is some user
interaction required, full authentication testing has to be done manually
with something like:
make test MAKETEST_OAUTH_CFG=$HOME/oauth-testing.st [MAKETEST_PERMS=write]
[TEST_VERBOSE=1]
or
make test MAKETEST_FLICKR_CFG=$HOME/flickr-auth-testing.st [TEST_VERBOSE=1]
or even
make test MAKETEST_OAUTH_CFG=$HOME/oauth-testing.st \
MAKETEST_FLICKR_CFG=$HOME/flickr-auth-testing.st [TEST_VERBOSE=1]
There are two scripts in the script directory that can be used to build
and verify a Storable.pm format configuration file:
script/flickr_make_stored_config.pl and
script/flickr_dump_stored_config.pl
When using OAuth, the api_key and api_secret are called the consumer_key
and consumer_secret respectively. When using the deprecated Flickr
authentication, the api_key and api_secret are sometimes called key
and secret.
It is possible to use authentication testing to produce a configuration
in storable format that can be imported into the Flickr::API for future use.
MORE ON AUTHENTICATION
When using the original Flickr authentication, there are two methods:
web-based and non-web-based. For web-based the developer defines a
callback URL, which is where the Flickr will redirect the session,
along with a frob.
For non-webbased, you need to make a call to flickr.auth.getFrob to
obtain the frob to exchange for a token. The tests only deal with
web-based authentication. In general, since Flickr deprecated their
original authentication in favor of OAuth, more effort is dedicated
to OAuth.
If you are using Flickr's authentication, and you receive an
"Oops! Flickr can't find a valid callback URL." page, then you
are calling an API that is not web-based.
DEPENDENCIES
This module requires these other modules and libraries:
Carp
Data::Dumper
Digest::MD5
Encode
Getopt::Long
HTTP::Request
HTTP::Request::Common
HTTP::Response
LWP::UserAgent
Net::OAuth
parent
Scalar::Util
Storable
Term::ReadLine
URI
XML::Parser::Lite::Tree
XML::LibXML::Simple
Testing this module and using the examples additionally require:
File::Temp
Test::More
Test::Script
COPYRIGHT AND LICENSE
Copyright (C) 2004-2013 Cal Henderson <cal@iamcal.com>
License: Perl Artistic License 2.0
OAuth patches and additions
Copyright (C) 2014-2016 Louis B. Moore <lbmoore@cpan.org>
License: Perl Artistic License 2.0