Here are the examples of the python api compat.Request taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
4 Examples
3
Example 1
def _get_request_token(self):
try:
url = self._get_oauth_url('request_token')
request = oauth.OAuthRequest.from_consumer_and_token(
self._consumer, http_url=url, callback=self.callback
)
request.sign_request(self._sigmethod, self._consumer, None)
resp = urlopen(Request(request.to_url())) # must
return oauth.OAuthToken.from_string(resp.read().decode('ascii'))
except RuntimeError as e:
raise QWeiboError(e)
0
Example 2
def get_access_token(self, verifier=None):
"""
After user has authorized the request token, get access token
with user supplied verifier.
"""
try:
url = self._get_oauth_url('access_token')
# build request
request = oauth.OAuthRequest.from_consumer_and_token(
self._consumer,
token=self.request_token, http_url=url,
verifier=str(verifier)
)
request.sign_request(self._sigmethod, self._consumer, self.request_token)
# send request
resp = urlopen(Request(request.to_url())) # must
self.access_token = oauth.OAuthToken.from_string(resp.read().decode('ascii'))
#print ('Access token key: ' + str(self.access_token.key))
#print ('Access token secret: ' + str(self.access_token.secret))
return self.access_token
except Exception as e:
raise QWeiboError(e)
0
Example 3
Project: pyqqweibo Source File: auth.py
def get_access_token(self, code):
"""user code to access token
Get an access token from the supplied code
https://svn.tools.ietf.org/html/draft-hammer-oauth2-00#section-3.5.2.2
"""
if code is None:
raise ValueError("Code must be set.")
endpoint='access_token'
params = {}
if 'state' in self.params:
params['state'] = self.params['state']
args = {
'grant_type': 'authorization_code',
'client_id': self._api_key,
'client_secret': self._api_secret,
'code': code,
'redirect_uri': self.callback,
}
args.update(params or {})
uri = urlparse.urljoin(self.BASE_URL, endpoint)
body = urlencode(args)
headers = {
'Content-Type': 'application/x-www-form-urlencoded',
}
req = Request(uri, body, headers)
resp = urlopen(req)
content = resp.read()
if not resp.code == 200:
print (resp, resp.code, content)
raise Error(content)
response_args = dict(parse_qsl(content))
error = response_args.get('error', None)
if error is not None:
msg = "%s:%s" % (error,
response_args.get('error_description', ''))
raise Error(msg)
refresh_token = response_args.get('refresh_token', None)
access_token = response_args.get('access_token', None)
openid = response_args.get('openid', None)
#if refresh_token is not None:
# response_args = self.refresh(refresh_token)
self.refresh_token = refresh_token
self.access_token = access_token
self.openid = openid
return response_args
0
Example 4
Project: pyqqweibo Source File: auth.py
def refresh(self, refresh_token=None):
"""Get a new access token from the supplied refresh token
https://svn.tools.ietf.org/html/draft-hammer-oauth2-00#section-4
"""
endpoint = 'access_token'
refresh_token = refresh_token or self.refresh_token
if not refresh_token:
raise ValueError("refresh_token can't be empty")
args = {
'grant_type': 'refresh_token',
'client_id': self._api_key,
'refresh_token': refresh_token,
}
uri = urlparse.urljoin(self.BASE_URL, endpoint)
body = urlencode(args)
headers = {
'Content-Type': 'application/x-www-form-urlencoded',
}
req = Request(uri, body, headers)
resp = urlopen(req)
content = resp.read()
if not resp.code == 200:
raise Error(content)
response_args = dict(parse_qsl(content))
self.access_token = response_args.get("access_token", None)
self.refresh_token = response_args.get("refresh_token", None)
return response_args