def get_request_token(self):
"""
Function for generating initial request token for three-legged oauth
Takes no input, returns a request_token dict with two keys, oauth_token and oauth_token_secret
"""
callback_url = self.request.build_absolute_uri(reverse('bot-authorize', args=(self.object.pk, )))
consumer = oauth.Consumer(CONSUMER_KEY, CONSUMER_SECRET)
client = oauth.Client(consumer)
resp, content = client.request(self.REQUEST_TOKEN_URL, "POST",
body=urllib.parse.urlencode({'oauth_callback': callback_url}))
if resp['status'] != '200':
raise Exception("Invalid response %s." % resp['status'])
request_token = dict(urllib.parse.parse_qsl(content))
# urllib returns bytes, which will need to be decoded using the string.decode() method before use
request_token = {key.decode(): value.decode() for key, value in request_token.items()}
# Return the token dict containing token and secret
return request_token
评论列表
文章目录