Cleanup of samples including adding flags to control logging.
diff --git a/apiclient/discovery.py b/apiclient/discovery.py
index cc31967..aabbade 100644
--- a/apiclient/discovery.py
+++ b/apiclient/discovery.py
@@ -114,6 +114,7 @@
try:
service = simplejson.loads(content)
except ValueError, e:
+ logging.error('Failed to parse as JSON: ' + content)
raise InvalidJsonError()
fn = os.path.join(os.path.dirname(__file__), 'contrib',
diff --git a/apiclient/model.py b/apiclient/model.py
index 4ca91f4..1e5b862 100644
--- a/apiclient/model.py
+++ b/apiclient/model.py
@@ -22,7 +22,10 @@
FLAGS = gflags.FLAGS
gflags.DEFINE_boolean('dump_request_response', False,
- 'Dump all http server requests and responses.')
+ 'Dump all http server requests and responses. '
+ 'Must use apiclient.model.LoggingJsonModel as '
+ 'the model.'
+ )
def _abstract():
diff --git a/oauth2client/client.py b/oauth2client/client.py
index 69724f3..1a3937b 100644
--- a/oauth2client/client.py
+++ b/oauth2client/client.py
@@ -192,6 +192,7 @@
'user-agent': self.user_agent,
'content-type': 'application/x-www-form-urlencoded'
}
+ logging.info("Refresing access_token")
resp, content = http_request(
self.token_uri, method='POST', body=body, headers=headers)
if resp.status == 200:
@@ -218,6 +219,8 @@
self._invalid = True
if self.store is not None:
self.store(self)
+ else:
+ logging.warning("Unable to store refreshed credentials, no Storage provided.")
except:
pass
raise AccessTokenRefreshError(error_msg)
diff --git a/samples/api-python-client-doc/gflags.py b/samples/api-python-client-doc/gflags.py
new file mode 120000
index 0000000..5a2ff94
--- /dev/null
+++ b/samples/api-python-client-doc/gflags.py
@@ -0,0 +1 @@
+../../gflags.py
\ No newline at end of file
diff --git a/samples/api-python-client-doc/gflags_validators.py b/samples/api-python-client-doc/gflags_validators.py
new file mode 120000
index 0000000..25d8ce8
--- /dev/null
+++ b/samples/api-python-client-doc/gflags_validators.py
@@ -0,0 +1 @@
+../../gflags_validators.py
\ No newline at end of file
diff --git a/samples/django_sample/buzz/views.py b/samples/django_sample/buzz/views.py
index d8d37c2..0205c4f 100644
--- a/samples/django_sample/buzz/views.py
+++ b/samples/django_sample/buzz/views.py
@@ -50,10 +50,6 @@
def auth_return(request):
try:
f = Flow.objects.get(id=request.user)
- print f
- print f.flow
- print dir(f.flow)
- print type(f.flow)
credential = f.flow.step2_exchange(request.REQUEST)
c = Credential(id=request.user, credential=credential)
c.save()
diff --git a/samples/new_project_template/gflags.py b/samples/new_project_template/gflags.py
new file mode 120000
index 0000000..5a2ff94
--- /dev/null
+++ b/samples/new_project_template/gflags.py
@@ -0,0 +1 @@
+../../gflags.py
\ No newline at end of file
diff --git a/samples/new_project_template/gflags_validators.py b/samples/new_project_template/gflags_validators.py
new file mode 120000
index 0000000..25d8ce8
--- /dev/null
+++ b/samples/new_project_template/gflags_validators.py
@@ -0,0 +1 @@
+../../gflags_validators.py
\ No newline at end of file
diff --git a/samples/oauth2/appengine/gflags.py b/samples/oauth2/appengine/gflags.py
new file mode 120000
index 0000000..157177e
--- /dev/null
+++ b/samples/oauth2/appengine/gflags.py
@@ -0,0 +1 @@
+../../../gflags.py
\ No newline at end of file
diff --git a/samples/oauth2/appengine/gflags_validators.py b/samples/oauth2/appengine/gflags_validators.py
new file mode 120000
index 0000000..9d359e0
--- /dev/null
+++ b/samples/oauth2/appengine/gflags_validators.py
@@ -0,0 +1 @@
+../../../gflags_validators.py
\ No newline at end of file
diff --git a/samples/oauth2/buzz/buzz.py b/samples/oauth2/buzz/buzz.py
index 86ceaf9..74ee3a4 100644
--- a/samples/oauth2/buzz/buzz.py
+++ b/samples/oauth2/buzz/buzz.py
@@ -11,36 +11,47 @@
__author__ = 'jcgregorio@google.com (Joe Gregorio)'
+import gflags
import httplib2
-import pickle
+import logging
import pprint
+import sys
from apiclient.discovery import build
from oauth2client.file import Storage
from oauth2client.client import OAuth2WebServerFlow
from oauth2client.tools import run
-# Uncomment the next line to get very detailed logging
-#httplib2.debuglevel = 4
+FLAGS = gflags.FLAGS
+FLOW = OAuth2WebServerFlow(
+ client_id='433807057907.apps.googleusercontent.com',
+ client_secret='jigtZpMApkRxncxikFpR+SFg',
+ scope='https://www.googleapis.com/auth/buzz',
+ user_agent='buzz-cmdline-sample/1.0')
+
+gflags.DEFINE_enum('logging_level', 'ERROR',
+ ['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'],
+ 'Set the level of logging detail.')
-def main():
+def main(argv):
+ try:
+ argv = FLAGS(argv)
+ except gflags.FlagsError, e:
+ print '%s\\nUsage: %s ARGS\\n%s' % (e, argv[0], FLAGS)
+ sys.exit(1)
+
+ logging.getLogger().setLevel(getattr(logging, FLAGS.logging_level))
+
storage = Storage('buzz.dat')
credentials = storage.get()
if credentials is None or credentials.invalid == True:
- flow = OAuth2WebServerFlow(
- client_id='433807057907.apps.googleusercontent.com',
- client_secret='jigtZpMApkRxncxikFpR+SFg',
- scope='https://www.googleapis.com/auth/buzz',
- user_agent='buzz-cmdline-sample/1.0',
- domain='anonymous',
- xoauth_displayname='Buzz Client Example App'
- )
- credentials = run(flow, storage)
+ credentials = run(FLOW, storage)
http = httplib2.Http()
http = credentials.authorize(http)
+ # Build the Buzz service
service = build("buzz", "v1", http=http,
developerKey="AIzaSyDRRpR3GS1F1_jKNNM9HCNd2wJQyPG3oN0")
activities = service.activities()
@@ -57,13 +68,11 @@
# Add a new activity
new_activity_body = {
- "data": {
- 'title': 'Testing insert',
- 'object': {
- 'content':
- u'Just a short note to show that insert is working. ☄',
- 'type': 'note'}
- }
+ 'title': 'Testing insert',
+ 'object': {
+ 'content':
+ u'Just a short note to show that insert is working. ☄',
+ 'type': 'note'}
}
activity = activities.insert(userId='@me', body=new_activity_body).execute()
print "Added a new activity"
@@ -73,9 +82,7 @@
# Add a comment to that activity
comment_body = {
- "data": {
- "content": "This is a comment"
- }
+ "content": "This is a comment"
}
item = activitylist['items'][0]
comment = service.comments().insert(
@@ -85,4 +92,4 @@
pprint.pprint(comment)
if __name__ == '__main__':
- main()
+ main(sys.argv)
diff --git a/samples/oauth2/django_sample/buzz/views.py b/samples/oauth2/django_sample/buzz/views.py
index c4ec4d0..c942aaf 100644
--- a/samples/oauth2/django_sample/buzz/views.py
+++ b/samples/oauth2/django_sample/buzz/views.py
@@ -15,7 +15,7 @@
from django.http import HttpResponseRedirect
from django.shortcuts import render_to_response
-STEP2_URI = 'http://gregorio2.cnc.corp.google.com:8000/auth_return'
+STEP2_URI = 'http://localhost:8000/auth_return'
@login_required
@@ -52,10 +52,6 @@
def auth_return(request):
try:
f = FlowModel.objects.get(id=request.user)
- print f
- print f.flow
- print dir(f.flow)
- print type(f.flow)
credential = f.flow.step2_exchange(request.REQUEST)
storage = Storage(CredentialsModel, 'id', request.user, 'credential')
storage.put(credential)
diff --git a/samples/oauth2/moderator/moderator.py b/samples/oauth2/moderator/moderator.py
index 1578abd..c75c962 100644
--- a/samples/oauth2/moderator/moderator.py
+++ b/samples/oauth2/moderator/moderator.py
@@ -12,6 +12,7 @@
import gflags
import httplib2
+import logging
import sys
from apiclient.discovery import build
@@ -20,6 +21,16 @@
from oauth2client.tools import run
FLAGS = gflags.FLAGS
+FLOW = OAuth2WebServerFlow(
+ client_id='433807057907.apps.googleusercontent.com',
+ client_secret='jigtZpMApkRxncxikFpR+SFg',
+ scope='https://www.googleapis.com/auth/moderator',
+ user_agent='moderator-cmdline-sample/1.0')
+
+gflags.DEFINE_enum('logging_level', 'ERROR',
+ ['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'],
+ 'Set the level of logging detail.')
+
def main(argv):
try:
@@ -28,17 +39,13 @@
print '%s\\nUsage: %s ARGS\\n%s' % (e, argv[0], FLAGS)
sys.exit(1)
+ logging.getLogger().setLevel(getattr(logging, FLAGS.logging_level))
+
storage = Storage('moderator.dat')
credentials = storage.get()
if credentials is None or credentials.invalid == True:
- flow = OAuth2WebServerFlow(
- client_id='433807057907.apps.googleusercontent.com',
- client_secret='jigtZpMApkRxncxikFpR+SFg',
- scope='https://www.googleapis.com/auth/moderator',
- user_agent='moderator-cmdline-sample/1.0')
-
- credentials = run(flow, storage)
+ credentials = run(FLOW, storage)
http = httplib2.Http(cache=".cache")
http = credentials.authorize(http)
diff --git a/samples/oauth2/urlshortener/main.py b/samples/oauth2/urlshortener/main.py
index 32a60df..62945c5 100644
--- a/samples/oauth2/urlshortener/main.py
+++ b/samples/oauth2/urlshortener/main.py
@@ -10,8 +10,11 @@
__author__ = 'jcgregorio@google.com (Joe Gregorio)'
+import gflags
import httplib2
+import logging
import pprint
+import sys
from apiclient.discovery import build
from oauth2client.file import Storage
@@ -19,22 +22,31 @@
from oauth2client.client import AccessTokenCredentials
from oauth2client.tools import run
-# Uncomment to get detailed logging
-#httplib2.debuglevel = 4
+FLAGS = gflags.FLAGS
+FLOW = OAuth2WebServerFlow(
+ client_id='433807057907.apps.googleusercontent.com',
+ client_secret='jigtZpMApkRxncxikFpR+SFg',
+ scope='https://www.googleapis.com/auth/urlshortener',
+ user_agent='urlshortener-cmdline-sample/1.0')
+
+gflags.DEFINE_enum('logging_level', 'ERROR',
+ ['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'],
+ 'Set the level of logging detail.')
-def main():
+def main(argv):
+ try:
+ argv = FLAGS(argv)
+ except gflags.FlagsError, e:
+ print '%s\\nUsage: %s ARGS\\n%s' % (e, argv[0], FLAGS)
+ sys.exit(1)
+
+ logging.getLogger().setLevel(getattr(logging, FLAGS.logging_level))
+
storage = Storage('urlshortener.dat')
credentials = storage.get()
-
if credentials is None or credentials.invalid == True:
- flow = OAuth2WebServerFlow(
- client_id='433807057907.apps.googleusercontent.com',
- client_secret='jigtZpMApkRxncxikFpR+SFg',
- scope='https://www.googleapis.com/auth/urlshortener',
- user_agent='urlshortener-cmdline-sample/1.0')
-
- credentials = run(flow, storage)
+ credentials = run(FLOW, storage)
http = httplib2.Http()
http = credentials.authorize(http)
@@ -57,4 +69,4 @@
if __name__ == '__main__':
- main()
+ main(sys.argv)