Added TODO and did PEP 8 cleanup.
diff --git a/samples/cmdline/buzz.py b/samples/cmdline/buzz.py
index 9a0a909..e6b2ff4 100644
--- a/samples/cmdline/buzz.py
+++ b/samples/cmdline/buzz.py
@@ -10,38 +10,14 @@
__author__ = 'jcgregorio@google.com (Joe Gregorio)'
-# TODO
-# - Add normalize_ that converts max-results into MaxResults
-#
-# - Each 'resource' should be its own object accessible
-# from the service object returned from discovery.
-#
-# - Methods can either execute immediately or return
-# RestRequest objects which can be batched.
-#
-# - 'Body' parameter for non-GET requests
-#
-# - 2.x and 3.x compatible
-
-# JS also has the idea of a TransportRequest and a Transport.
-# The Transport has a doRequest() method that takes a request
-# and a callback function.
-#
-
-
-# Discovery doc notes
-# - Which parameters are optional vs mandatory
-# - Is pattern a regex?
-# - Inconsistent naming max-results vs userId
-
from apiclient.discovery import build
import httplib2
-import simplejson
-import re
-
import oauth2 as oauth
+import re
+import simplejson
+
def oauth_wrap(consumer, token, http):
"""
@@ -51,7 +27,7 @@
Returns:
A modified instance of http that was passed in.
-
+
Example:
h = httplib2.Http()
@@ -61,14 +37,15 @@
subclass of httplib2.Authenication because
it never gets passed the absolute URI, which is
needed for signing. So instead we have to overload
- 'request' with a closure that adds in the
+ 'request' with a closure that adds in the
Authorization header and then calls the original version
of 'request()'.
"""
request_orig = http.request
signer = oauth.SignatureMethod_HMAC_SHA1()
- def new_request(uri, method="GET", body=None, headers=None, redirections=httplib2.DEFAULT_MAX_REDIRECTS, connection_type=None):
+ def new_request(uri, method="GET", body=None, headers=None,
+ redirections=httplib2.DEFAULT_MAX_REDIRECTS, connection_type=None):
"""Modify the request headers to add the appropriate
Authorization header."""
req = oauth.Request.from_consumer_and_token(
@@ -78,19 +55,23 @@
headers = {}
headers.update(req.to_header())
headers['user-agent'] = 'jcgregorio-test-client'
- return request_orig(uri, method, body, headers, redirections, connection_type)
+ return request_orig(uri, method, body, headers,
+ redirections, connection_type)
http.request = new_request
return http
+
def get_wrapped_http():
f = open("oauth_token.dat", "r")
oauth_params = simplejson.loads(f.read())
- consumer = oauth.Consumer(oauth_params['consumer_key'], oauth_params['consumer_secret'])
- token = oauth.Token(oauth_params['oauth_token'], oauth_params['oauth_token_secret'])
+ consumer = oauth.Consumer(
+ oauth_params['consumer_key'], oauth_params['consumer_secret'])
+ token = oauth.Token(
+ oauth_params['oauth_token'], oauth_params['oauth_token_secret'])
- # Create a simple monkeypatch for httplib2.Http.request
+ # Create a simple monkeypatch for httplib2.Http.request
# just adds in the oauth authorization header and then calls
# the original request().
http = httplib2.Http()
@@ -99,14 +80,14 @@
def main():
http = get_wrapped_http()
- p = build("buzz", "v1", http = http)
+ p = build("buzz", "v1", http=http)
activities = p.activities()
activitylist = activities.list(scope='@self', userId='@me')
print activitylist['items'][0]['title']
activities.insert(userId='@me', body={
'title': 'Testing insert',
'object': {
- 'content': u'Just a short note to show that insert is working. ☄',
+ 'content': u'Just a short note to show that insert is working. ☄',
'type': 'note'}
}
)
diff --git a/samples/cmdline/three_legged_dance.py b/samples/cmdline/three_legged_dance.py
index 7219216..8e85796 100644
--- a/samples/cmdline/three_legged_dance.py
+++ b/samples/cmdline/three_legged_dance.py
@@ -9,7 +9,7 @@
except ImportError:
from cgi import parse_qs, parse_qsl
-httplib2.debuglevel=4
+httplib2.debuglevel = 4
headers = {"user-agent": "jcgregorio-buzz-client",
'content-type': 'application/x-www-form-urlencoded'
}
@@ -17,18 +17,22 @@
consumer_key = 'anonymous'
consumer_secret = 'anonymous'
-request_token_url = 'https://www.google.com/accounts/OAuthGetRequestToken?domain=anonymous&scope=https://www.googleapis.com/auth/buzz'
-access_token_url = 'https://www.google.com/accounts/OAuthGetAccessToken?domain=anonymous&scope=https://www.googleapis.com/auth/buzz'
-authorize_url = 'https://www.google.com/buzz/api/auth/OAuthAuthorizeToken?domain=anonymous&scope=https://www.googleapis.com/auth/buzz'
+request_token_url = 'https://www.google.com/accounts/OAuthGetRequestToken' +
+ '?domain=anonymous&scope=https://www.googleapis.com/auth/buzz'
+access_token_url = 'https://www.google.com/accounts/OAuthGetAccessToken' +
+ '?domain=anonymous&scope=https://www.googleapis.com/auth/buzz'
+authorize_url = 'https://www.google.com/buzz/api/auth/OAuthAuthorizeToken' +
+ '?domain=anonymous&scope=https://www.googleapis.com/auth/buzz'
consumer = oauth.Consumer(consumer_key, consumer_secret)
client = oauth.Client(consumer)
-# Step 1: Get a request token. This is a temporary token that is used for
-# having the user authorize an access token and to sign the request to obtain
+# Step 1: Get a request token. This is a temporary token that is used for
+# having the user authorize an access token and to sign the request to obtain
# said access token.
-resp, content = client.request(request_token_url, "POST", headers=headers, body="oauth_callback=oob")
+resp, content = client.request(request_token_url, "POST", headers=headers,
+ body="oauth_callback=oob")
if resp['status'] != '200':
print content
raise Exception("Invalid response %s." % resp['status'])
@@ -38,9 +42,9 @@
print "Request Token:"
print " - oauth_token = %s" % request_token['oauth_token']
print " - oauth_token_secret = %s" % request_token['oauth_token_secret']
-print
+print
-# Step 2: Redirect to the provider. Since this is a CLI script we do not
+# Step 2: Redirect to the provider. Since this is a CLI script we do not
# redirect. In a web application you would redirect the user to the URL
# below.
@@ -56,20 +60,21 @@
print "Go to the following link in your browser:"
print authorize_url
-print
+print
# After the user has granted access to you, the consumer, the provider will
-# redirect you to whatever URL you have told them to redirect to. You can
+# redirect you to whatever URL you have told them to redirect to. You can
# usually define this in the oauth_callback argument as well.
accepted = 'n'
while accepted.lower() == 'n':
accepted = raw_input('Have you authorized me? (y/n) ')
-oauth_verifier = raw_input('What is the PIN? ')
+oauth_verifier = raw_input('What is the PIN? ').strip()
+
# Step 3: Once the consumer has redirected the user back to the oauth_callback
-# URL you can request the access token the user has approved. You use the
+# URL you can request the access token the user has approved. You use the
# request token to sign this request. After this is done you throw away the
-# request token and use the access token returned. You should store this
+# request token and use the access token returned. You should store this
# access token somewhere safe, like a database, for future use.
token = oauth.Token(request_token['oauth_token'],
request_token['oauth_token_secret'])
@@ -83,13 +88,14 @@
print " - oauth_token = %s" % access_token['oauth_token']
print " - oauth_token_secret = %s" % access_token['oauth_token_secret']
print
-print "You may now access protected resources using the access tokens above."
+print "You may now access protected resources using the access tokens above."
print
d = dict(
- consumer_key = 'anonymous',
- consumer_secret = 'anonymous'
+ consumer_key='anonymous',
+ consumer_secret='anonymous'
)
+
d.update(access_token)
f = open("oauth_token.dat", "w")