|
1 | 1 | #!/usr/bin/env python |
2 | 2 |
|
| 3 | +import cookielib |
3 | 4 | import oauth2 as oauth |
4 | 5 | import urllib |
5 | 6 | import urllib2 |
@@ -47,6 +48,12 @@ def __init__(self, domain, realm, consumer_key, consumer_secret, |
47 | 48 | # directly so we'll keep them "private". |
48 | 49 | self._consumer = oauth.Consumer(self.consumer_key, self.consumer_secret) |
49 | 50 | 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) |
50 | 57 |
|
51 | 58 | def _sign_request(self, req): |
52 | 59 | """Utility method to sign a request.""" |
@@ -108,6 +115,25 @@ def fetch_request_token(self): |
108 | 115 | """ |
109 | 116 | res = self.request(url=REQUEST_TOKEN_URL, method='POST', sign=True) |
110 | 117 | 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 | + |
112 | 122 | return self._token |
113 | 123 |
|
| 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