Skip to content

Python3 support #51

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 4 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions example/appengine_oauth.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ def is_valid(self):
request = self.get_oauth_request()
client = self.get_client(request)
params = self._server.verify_request(request, client, None)
except Exception, e:
except Exception as e:
raise e

return client
Expand All @@ -95,7 +95,7 @@ class SampleHandler(OAuthHandler):
def get(self):
try:
client = self.is_valid()
except Exception, e:
except Exception as e:
self.error(500)
self.response.out.write(e)

Expand Down
64 changes: 32 additions & 32 deletions example/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
or find one that works with your web framework.
"""

import httplib
import http.client
import time
import oauth.oauth as oauth

Expand All @@ -48,13 +48,13 @@
# example client using httplib with headers
class SimpleOAuthClient(oauth.OAuthClient):

def __init__(self, server, port=httplib.HTTP_PORT, request_token_url='', access_token_url='', authorization_url=''):
def __init__(self, server, port=http.client.HTTP_PORT, request_token_url='', access_token_url='', authorization_url=''):
self.server = server
self.port = port
self.request_token_url = request_token_url
self.access_token_url = access_token_url
self.authorization_url = authorization_url
self.connection = httplib.HTTPConnection("%s:%d" % (self.server, self.port))
self.connection = http.client.HTTPConnection("%s:%d" % (self.server, self.port))

def fetch_request_token(self, oauth_request):
# via headers
Expand Down Expand Up @@ -88,78 +88,78 @@ def access_resource(self, oauth_request):
def run_example():

# setup
print '** OAuth Python Library Example **'
print('** OAuth Python Library Example **')
client = SimpleOAuthClient(SERVER, PORT, REQUEST_TOKEN_URL, ACCESS_TOKEN_URL, AUTHORIZATION_URL)
consumer = oauth.OAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET)
signature_method_plaintext = oauth.OAuthSignatureMethod_PLAINTEXT()
signature_method_hmac_sha1 = oauth.OAuthSignatureMethod_HMAC_SHA1()
pause()

# get request token
print '* Obtain a request token ...'
print('* Obtain a request token ...')
pause()
oauth_request = oauth.OAuthRequest.from_consumer_and_token(consumer, callback=CALLBACK_URL, http_url=client.request_token_url)
oauth_request.sign_request(signature_method_plaintext, consumer, None)
print 'REQUEST (via headers)'
print 'parameters: %s' % str(oauth_request.parameters)
print('REQUEST (via headers)')
print('parameters: %s' % str(oauth_request.parameters))
pause()
token = client.fetch_request_token(oauth_request)
print 'GOT'
print 'key: %s' % str(token.key)
print 'secret: %s' % str(token.secret)
print 'callback confirmed? %s' % str(token.callback_confirmed)
print('GOT')
print('key: %s' % str(token.key))
print('secret: %s' % str(token.secret))
print('callback confirmed? %s' % str(token.callback_confirmed))
pause()

print '* Authorize the request token ...'
print('* Authorize the request token ...')
pause()
oauth_request = oauth.OAuthRequest.from_token_and_callback(token=token, http_url=client.authorization_url)
print 'REQUEST (via url query string)'
print 'parameters: %s' % str(oauth_request.parameters)
print('REQUEST (via url query string)')
print('parameters: %s' % str(oauth_request.parameters))
pause()
# this will actually occur only on some callback
response = client.authorize_token(oauth_request)
print 'GOT'
print response
print('GOT')
print(response)
# sad way to get the verifier
import urlparse, cgi
query = urlparse.urlparse(response)[4]
import urllib.parse, cgi
query = urllib.parse.urlparse(response)[4]
params = cgi.parse_qs(query, keep_blank_values=False)
verifier = params['oauth_verifier'][0]
print 'verifier: %s' % verifier
print('verifier: %s' % verifier)
pause()

# get access token
print '* Obtain an access token ...'
print('* Obtain an access token ...')
pause()
oauth_request = oauth.OAuthRequest.from_consumer_and_token(consumer, token=token, verifier=verifier, http_url=client.access_token_url)
oauth_request.sign_request(signature_method_plaintext, consumer, token)
print 'REQUEST (via headers)'
print 'parameters: %s' % str(oauth_request.parameters)
print('REQUEST (via headers)')
print('parameters: %s' % str(oauth_request.parameters))
pause()
token = client.fetch_access_token(oauth_request)
print 'GOT'
print 'key: %s' % str(token.key)
print 'secret: %s' % str(token.secret)
print('GOT')
print('key: %s' % str(token.key))
print('secret: %s' % str(token.secret))
pause()

# access some protected resources
print '* Access protected resources ...'
print('* Access protected resources ...')
pause()
parameters = {'file': 'vacation.jpg', 'size': 'original'} # resource specific params
oauth_request = oauth.OAuthRequest.from_consumer_and_token(consumer, token=token, http_method='POST', http_url=RESOURCE_URL, parameters=parameters)
oauth_request.sign_request(signature_method_hmac_sha1, consumer, token)
print 'REQUEST (via post body)'
print 'parameters: %s' % str(oauth_request.parameters)
print('REQUEST (via post body)')
print('parameters: %s' % str(oauth_request.parameters))
pause()
params = client.access_resource(oauth_request)
print 'GOT'
print 'non-oauth parameters: %s' % params
print('GOT')
print('non-oauth parameters: %s' % params)
pause()

def pause():
print ''
print('')
time.sleep(1)

if __name__ == '__main__':
run_example()
print 'Done.'
print('Done.')
16 changes: 8 additions & 8 deletions example/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@
THE SOFTWARE.
"""

from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
import urllib
from http.server import BaseHTTPRequestHandler, HTTPServer
import urllib.request, urllib.parse, urllib.error

import oauth.oauth as oauth

Expand Down Expand Up @@ -101,7 +101,7 @@ def send_oauth_error(self, err=None):
self.send_error(401, str(err.message))
# return the authenticate header
header = oauth.build_authenticate_header(realm=REALM)
for k, v in header.iteritems():
for k, v in header.items():
self.send_header(k, v)

def do_GET(self):
Expand Down Expand Up @@ -131,7 +131,7 @@ def do_GET(self):
self.end_headers()
# return the token
self.wfile.write(token.to_string())
except oauth.OAuthError, err:
except oauth.OAuthError as err:
self.send_oauth_error(err)
return

Expand All @@ -148,7 +148,7 @@ def do_GET(self):
self.end_headers()
# return the callback url (to show server has it)
self.wfile.write(token.get_callback_url())
except oauth.OAuthError, err:
except oauth.OAuthError as err:
self.send_oauth_error(err)
return

Expand All @@ -162,7 +162,7 @@ def do_GET(self):
self.end_headers()
# return the token
self.wfile.write(token.to_string())
except oauth.OAuthError, err:
except oauth.OAuthError as err:
self.send_oauth_error(err)
return

Expand All @@ -176,7 +176,7 @@ def do_GET(self):
self.end_headers()
# return the extra parameters - just for something to return
self.wfile.write(str(params))
except oauth.OAuthError, err:
except oauth.OAuthError as err:
self.send_oauth_error(err)
return

Expand All @@ -186,7 +186,7 @@ def do_POST(self):
def main():
try:
server = HTTPServer(('', 8080), RequestHandler)
print 'Test server running...'
print('Test server running...')
server.serve_forever()
except KeyboardInterrupt:
server.socket.close()
Expand Down
Loading