41
41
CALLBACK_URL = 'http://printer.example.com/request_token_ready'
42
42
RESOURCE_URL = 'http://photos.example.net/photos'
43
43
44
- # key and secret granted by the service provider for this consumer application - same as the MockOAuthDataStore
44
+ # key and secret granted by the service provider for this consumer
45
+ # application - same as the MockOAuthDataStore
45
46
CONSUMER_KEY = 'key'
46
47
CONSUMER_SECRET = 'secret'
47
48
48
49
# example client using httplib with headers
49
50
class SimpleOAuthClient (oauth .OAuthClient ):
50
51
51
- def __init__ (self , server , port = httplib .HTTP_PORT , request_token_url = '' , access_token_url = '' , authorization_url = '' ):
52
+ def __init__ (self , server , port = httplib .HTTP_PORT , request_token_url = '' ,
53
+ access_token_url = '' , authorization_url = '' ):
52
54
self .server = server
53
55
self .port = port
54
56
self .request_token_url = request_token_url
55
57
self .access_token_url = access_token_url
56
58
self .authorization_url = authorization_url
57
- self .connection = httplib .HTTPConnection ("%s:%d" % (self .server , self .port ))
59
+ self .connection = httplib .HTTPConnection (
60
+ "%s:%d" % (self .server , self .port ))
58
61
59
62
def fetch_request_token (self , oauth_request ):
60
63
# via headers
61
64
# -> OAuthToken
62
- self .connection .request (oauth_request .http_method , self .request_token_url , headers = oauth_request .to_header ())
65
+ self .connection .request (oauth_request .http_method ,
66
+ self .request_token_url , headers = oauth_request .to_header ())
63
67
response = self .connection .getresponse ()
64
68
return oauth .OAuthToken .from_string (response .read ())
65
69
66
70
def fetch_access_token (self , oauth_request ):
67
71
# via headers
68
72
# -> OAuthToken
69
- self .connection .request (oauth_request .http_method , self .access_token_url , headers = oauth_request .to_header ())
73
+ self .connection .request (oauth_request .http_method ,
74
+ self .access_token_url , headers = oauth_request .to_header ())
70
75
response = self .connection .getresponse ()
71
76
return oauth .OAuthToken .from_string (response .read ())
72
77
73
78
def authorize_token (self , oauth_request ):
74
79
# via url
75
80
# -> typically just some okay response
76
- self .connection .request (oauth_request .http_method , oauth_request .to_url ())
81
+ self .connection .request (oauth_request .http_method ,
82
+ oauth_request .to_url ())
77
83
response = self .connection .getresponse ()
78
84
return response .read ()
79
85
80
86
def access_resource (self , oauth_request ):
81
87
# via post body
82
88
# -> some protected resources
83
89
headers = {'Content-Type' :'application/x-www-form-urlencoded' }
84
- self .connection .request ('POST' , RESOURCE_URL , body = oauth_request .to_postdata (), headers = headers )
90
+ self .connection .request ('POST' , RESOURCE_URL ,
91
+ body = oauth_request .to_postdata (),
92
+ headers = headers )
85
93
response = self .connection .getresponse ()
86
94
return response .read ()
87
95
88
96
def run_example ():
89
97
90
98
# setup
91
- print '** OAuth Python Library Example **'
92
- client = SimpleOAuthClient (SERVER , PORT , REQUEST_TOKEN_URL , ACCESS_TOKEN_URL , AUTHORIZATION_URL )
99
+ print ('** OAuth Python Library Example **' )
100
+ client = SimpleOAuthClient (SERVER , PORT , REQUEST_TOKEN_URL ,
101
+ ACCESS_TOKEN_URL , AUTHORIZATION_URL )
93
102
consumer = oauth .OAuthConsumer (CONSUMER_KEY , CONSUMER_SECRET )
94
103
signature_method_plaintext = oauth .OAuthSignatureMethod_PLAINTEXT ()
95
104
signature_method_hmac_sha1 = oauth .OAuthSignatureMethod_HMAC_SHA1 ()
96
105
pause ()
97
106
98
107
# get request token
99
- print '* Obtain a request token ...'
108
+ print ( '* Obtain a request token ...' )
100
109
pause ()
101
- oauth_request = oauth .OAuthRequest .from_consumer_and_token (consumer , callback = CALLBACK_URL , http_url = client .request_token_url )
110
+ oauth_request = oauth .OAuthRequest .from_consumer_and_token (
111
+ consumer , callback = CALLBACK_URL , http_url = client .request_token_url )
102
112
oauth_request .sign_request (signature_method_plaintext , consumer , None )
103
- print 'REQUEST (via headers)'
104
- print 'parameters: %s' % str (oauth_request .parameters )
113
+ print ( 'REQUEST (via headers)' )
114
+ print ( 'parameters: %s' % str (oauth_request .parameters ) )
105
115
pause ()
106
116
token = client .fetch_request_token (oauth_request )
107
- print 'GOT'
108
- print 'key: %s' % str (token .key )
109
- print 'secret: %s' % str (token .secret )
110
- print 'callback confirmed? %s' % str (token .callback_confirmed )
117
+ print ( 'GOT' )
118
+ print ( 'key: %s' % str (token .key ) )
119
+ print ( 'secret: %s' % str (token .secret ) )
120
+ print ( 'callback confirmed? %s' % str (token .callback_confirmed ) )
111
121
pause ()
112
122
113
- print '* Authorize the request token ...'
123
+ print ( '* Authorize the request token ...' )
114
124
pause ()
115
- oauth_request = oauth .OAuthRequest .from_token_and_callback (token = token , http_url = client .authorization_url )
116
- print 'REQUEST (via url query string)'
117
- print 'parameters: %s' % str (oauth_request .parameters )
125
+ oauth_request = oauth .OAuthRequest .from_token_and_callback (
126
+ token = token , http_url = client .authorization_url )
127
+ print ('REQUEST (via url query string)' )
128
+ print ('parameters: %s' % str (oauth_request .parameters ))
118
129
pause ()
119
130
# this will actually occur only on some callback
120
131
response = client .authorize_token (oauth_request )
121
- print 'GOT'
122
- print response
132
+ print ( 'GOT' )
133
+ print ( response )
123
134
# sad way to get the verifier
124
135
import urlparse , cgi
125
136
query = urlparse .urlparse (response )[4 ]
126
137
params = cgi .parse_qs (query , keep_blank_values = False )
127
138
verifier = params ['oauth_verifier' ][0 ]
128
- print 'verifier: %s' % verifier
139
+ print ( 'verifier: %s' % verifier )
129
140
pause ()
130
141
131
142
# get access token
132
- print '* Obtain an access token ...'
143
+ print ( '* Obtain an access token ...' )
133
144
pause ()
134
- oauth_request = oauth .OAuthRequest .from_consumer_and_token (consumer , token = token , verifier = verifier , http_url = client .access_token_url )
145
+ oauth_request = oauth .OAuthRequest .from_consumer_and_token (
146
+ consumer , token = token , verifier = verifier ,
147
+ http_url = client .access_token_url )
135
148
oauth_request .sign_request (signature_method_plaintext , consumer , token )
136
- print 'REQUEST (via headers)'
137
- print 'parameters: %s' % str (oauth_request .parameters )
149
+ print ( 'REQUEST (via headers)' )
150
+ print ( 'parameters: %s' % str (oauth_request .parameters ) )
138
151
pause ()
139
152
token = client .fetch_access_token (oauth_request )
140
- print 'GOT'
141
- print 'key: %s' % str (token .key )
142
- print 'secret: %s' % str (token .secret )
153
+ print ( 'GOT' )
154
+ print ( 'key: %s' % str (token .key ) )
155
+ print ( 'secret: %s' % str (token .secret ) )
143
156
pause ()
144
157
145
158
# access some protected resources
146
- print '* Access protected resources ...'
159
+ print ( '* Access protected resources ...' )
147
160
pause ()
148
- parameters = {'file' : 'vacation.jpg' , 'size' : 'original' } # resource specific params
149
- oauth_request = oauth .OAuthRequest .from_consumer_and_token (consumer , token = token , http_method = 'POST' , http_url = RESOURCE_URL , parameters = parameters )
161
+ parameters = {'file' : 'vacation.jpg' ,
162
+ 'size' : 'original' } # resource specific params
163
+ oauth_request = oauth .OAuthRequest .from_consumer_and_token (consumer ,
164
+ token = token , http_method = 'POST' , http_url = RESOURCE_URL ,
165
+ parameters = parameters )
150
166
oauth_request .sign_request (signature_method_hmac_sha1 , consumer , token )
151
- print 'REQUEST (via post body)'
152
- print 'parameters: %s' % str (oauth_request .parameters )
167
+ print ( 'REQUEST (via post body)' )
168
+ print ( 'parameters: %s' % str (oauth_request .parameters ) )
153
169
pause ()
154
170
params = client .access_resource (oauth_request )
155
- print 'GOT'
156
- print 'non-oauth parameters: %s' % params
171
+ print ( 'GOT' )
172
+ print ( 'non-oauth parameters: %s' % params )
157
173
pause ()
158
174
159
175
def pause ():
160
- print ''
176
+ print ( '' )
161
177
time .sleep (1 )
162
178
163
179
if __name__ == '__main__' :
164
180
run_example ()
165
- print 'Done.'
181
+ print ( 'Done.' )
0 commit comments