33
44import datetime
55import time
6+ import cgi
67import types
78from urllib import urlencode
89from urllib2 import HTTPError , HTTPErrorProcessor , urlopen , Request , build_opener
@@ -132,8 +133,9 @@ def __init__(self, consumer, request_token, access_token):
132133 self .request_token = request_token
133134 self .access_token = access_token
134135
135- def fetch_request_token (self , signature_method = signature_method_hmac ):
136- oauth_req = oauth .OAuthRequest .from_consumer_and_token (self .consumer , http_url = (OAUTH_BASE_URL + 'oauth/request/' ))
136+ def fetch_request_token (self , callback = "oob" , signature_method = signature_method_hmac ):
137+ oauth_req = oauth .OAuthRequest .from_consumer_and_token (
138+ self .consumer , http_url = (OAUTH_BASE_URL + 'oauth/request/' ), callback = callback )
137139 oauth_req .sign_request (signature_method , self .consumer , None )
138140 token_string = urlopen (Request (oauth_req .http_url , headers = oauth_req .to_header ())).read ()
139141 self .request_token = oauth .OAuthToken .from_string (token_string )
@@ -145,14 +147,16 @@ def get_authorize_url(self, oauth_callback=None):
145147 callbackUrl = ""
146148 return OAUTH_BASE_URL + "authorize/?oauth_token=%s%s" % (self .request_token .key , callbackUrl )
147149
148- def fetch_access_token (self , signature_method = signature_method_hmac , request_token = None ):
150+ def fetch_access_token (self , oauth_verifier , signature_method = signature_method_hmac , request_token = None ):
149151 temp_request_token = request_token or self .request_token
150152 if not temp_request_token :
151153 raise NoToken ("You must provide a request token to exchange for an access token" )
152- oauth_req = oauth .OAuthRequest .from_consumer_and_token (self .consumer , token = temp_request_token , http_url = OAUTH_BASE_URL + 'oauth/access/' )
154+ oauth_req = oauth .OAuthRequest .from_consumer_and_token (self .consumer , token = temp_request_token ,
155+ http_url = OAUTH_BASE_URL + 'oauth/access/' , verifier = oauth_verifier )
153156 oauth_req .sign_request (signature_method , self .consumer , temp_request_token )
154157 token_string = urlopen (Request (oauth_req .http_url , headers = oauth_req .to_header ())).read ()
155158 self .access_token = oauth .OAuthToken .from_string (token_string )
159+ return cgi .parse_qs (token_string )['member_id' ][0 ]
156160
157161class MeetupOAuth (Meetup ):
158162
0 commit comments