Skip to content

Commit 4335705

Browse files
committed
Add ability to authorize at the specified AUTHORIZATION_URL
Added cookielib dependency. Added cookie jar to persist cookies through requests as script runs. Added OX3APIClient.authorize_token to authorize user and token at specified AUTHORIZATION_URL.
1 parent 5803a39 commit 4335705

1 file changed

Lines changed: 27 additions & 1 deletion

File tree

ox3apiclient.py

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#!/usr/bin/env python
22

3+
import cookielib
34
import oauth2 as oauth
45
import urllib
56
import urllib2
@@ -47,6 +48,12 @@ def __init__(self, domain, realm, consumer_key, consumer_secret,
4748
# directly so we'll keep them "private".
4849
self._consumer = oauth.Consumer(self.consumer_key, self.consumer_secret)
4950
self._token = oauth.Token('', '')
51+
52+
# Similarly you probably won't need to access the cookie jar directly,
53+
# so it is private as well.
54+
self._cookie_jar = cookielib.LWPCookieJar()
55+
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self._cookie_jar))
56+
urllib2.install_opener(opener)
5057

5158
def _sign_request(self, req):
5259
"""Utility method to sign a request."""
@@ -108,6 +115,25 @@ def fetch_request_token(self):
108115
"""
109116
res = self.request(url=REQUEST_TOKEN_URL, method='POST', sign=True)
110117
token = urlparse.parse_qs(res.read())
111-
self._token = oauth.Token(token['oauth_token'][0], token['oauth_token_secret'][0])
118+
self._token = oauth.Token(
119+
token['oauth_token'][0],
120+
token['oauth_token_secret'][0])
121+
112122
return self._token
113123

124+
def authorize_token(self, email, password):
125+
"""Helper method to authorize."""
126+
data = {
127+
'email': email,
128+
'password': password,
129+
'oauth_token': self._token.key}
130+
131+
res = self.request(
132+
url=AUTHORIZATION_URL,
133+
method='POST',
134+
data=data,
135+
sign=True)
136+
137+
verifier = urlparse.parse_qs(res.read())['oauth_verifier'][0]
138+
self._token.set_verifier(verifier)
139+

0 commit comments

Comments
 (0)