diff options
author | Joe Gregorio <jcgregorio@google.com> | 2013-06-30 23:19:25 -0400 |
---|---|---|
committer | Joe Gregorio <jcgregorio@google.com> | 2013-06-30 23:19:25 -0400 |
commit | 652492b22cdfc0301da15b87fcd7ef0d5fc79015 (patch) | |
tree | 56937e5214208a84f9a3df7309c74de67cbe2201 /samples | |
parent | eeace5fef865c50be810d55c43f71b912c5365f0 (diff) | |
download | oauth2client-652492b22cdfc0301da15b87fcd7ef0d5fc79015.tar.gz |
Update coordinate, blogger and audit API samples to use apiclient.sample_tools.
Reviewed in https://codereview.appspot.com/10802043/.
Diffstat (limited to 'samples')
-rw-r--r-- | samples/audit/audit.py | 80 | ||||
-rw-r--r-- | samples/blogger/blogger.py | 92 | ||||
-rw-r--r-- | samples/coordinate/coordinate.py | 92 |
3 files changed, 37 insertions, 227 deletions
diff --git a/samples/audit/audit.py b/samples/audit/audit.py index c34de84..eb43b40 100644 --- a/samples/audit/audit.py +++ b/samples/audit/audit.py @@ -36,80 +36,18 @@ To get detailed log output run: __author__ = 'rahulpaul@google.com (Rahul Paul)' -import gflags -import httplib2 -import logging -import os import pprint import sys -from apiclient.discovery import build -from oauth2client.client import AccessTokenRefreshError -from oauth2client.client import flow_from_clientsecrets -from oauth2client.file import Storage -from oauth2client.tools import run - - -FLAGS = gflags.FLAGS - -# CLIENT_SECRETS, name of a file containing the OAuth 2.0 information for this -# application, including client_id and client_secret, which are found -# on the API Access tab on the Google APIs -# Console <http://code.google.com/apis/console> -CLIENT_SECRETS = 'client_secrets.json' - -# Helpful message to display in the browser if the CLIENT_SECRETS file -# is missing. -MISSING_CLIENT_SECRETS_MESSAGE = """ -WARNING: Please configure OAuth 2.0 - -To make this sample run you will need to populate the client_secrets.json file -found at: - - %s - -with information from the APIs Console <https://code.google.com/apis/console>. - -""" % os.path.join(os.path.dirname(__file__), CLIENT_SECRETS) - -# Set up a Flow object to be used if we need to authenticate. -FLOW = flow_from_clientsecrets(CLIENT_SECRETS, - scope='https://www.googleapis.com/auth/apps/reporting/audit.readonly', - message=MISSING_CLIENT_SECRETS_MESSAGE) - - -# The gflags module makes defining command-line options easy for -# applications. Run this program with the '--help' argument to see -# all the flags that it understands. -gflags.DEFINE_enum('logging_level', 'ERROR', - ['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'], - 'Set the level of logging detail.') +from oauth2client import client +from apiclient import sample_tools def main(argv): - # Let the gflags module process the command-line arguments - try: - argv = FLAGS(argv) - except gflags.FlagsError, e: - print '%s\\nUsage: %s ARGS\\n%s' % (e, argv[0], FLAGS) - sys.exit(1) - - # Set the logging according to the command-line flag - logging.getLogger().setLevel(getattr(logging, FLAGS.logging_level)) - - # If the Credentials don't exist or are invalid run through the native client - # flow. The Storage object will ensure that if successful the good - # Credentials will get written back to a file. - storage = Storage('plus.dat') - credentials = storage.get() - - if credentials is None or credentials.invalid: - credentials = run(FLOW, storage) - - # Create an httplib2.Http object to handle our HTTP requests and authorize it - # with our good Credentials. - http = httplib2.Http() - http = credentials.authorize(http) + # Authenticate and construct service. + service, flags = sample_tools.init( + argv, 'audit', 'v1', __doc__, __file__, + scope='https://www.googleapis.com/auth/apps/reporting/audit.readonly') service = build('audit', 'v1', http=http) @@ -121,7 +59,7 @@ def main(argv): activity_list = activities.list( applicationId='207535951991', customerId='C01rv1wm7', maxResults='2', actorEmail='admin@enterprise-audit-clientlib.com').execute() - print_activities(activity_list) + pprint.pprint(activity_list) # Now retrieve the next 2 events match = re.search('(?<=continuationToken=).+$', activity_list['next']) @@ -133,9 +71,9 @@ def main(argv): applicationId='207535951991', customerId='C01rv1wm7', maxResults='2', actorEmail='admin@enterprise-audit-clientlib.com', continuationToken=next_token).execute() - print_activities(activity_list) + pprint.pprint(activity_list) - except AccessTokenRefreshError: + except client.AccessTokenRefreshError: print ('The credentials have been revoked or expired, please re-run' 'the application to re-authorize') diff --git a/samples/blogger/blogger.py b/samples/blogger/blogger.py index 8e3ccdd..035f5cd 100644 --- a/samples/blogger/blogger.py +++ b/samples/blogger/blogger.py @@ -34,109 +34,49 @@ To get detailed log output run: __author__ = 'jcgregorio@google.com (Joe Gregorio)' -import gflags -import httplib2 -import logging -import pprint import sys -import os -from apiclient.discovery import build -from oauth2client.file import Storage -from oauth2client.client import AccessTokenRefreshError -from oauth2client.client import flow_from_clientsecrets -from oauth2client.tools import run - -FLAGS = gflags.FLAGS - -# CLIENT_SECRETS, name of a file containing the OAuth 2.0 information for this -# application, including client_id and client_secret, which are found -# on the API Access tab on the Google APIs -# Console <http://code.google.com/apis/console> -CLIENT_SECRETS = 'client_secrets.json' - -# Helpful message to display in the browser if the CLIENT_SECRETS file -# is missing. -MISSING_CLIENT_SECRETS_MESSAGE = """ -WARNING: Please configure OAuth 2.0 - -To make this sample run you will need to populate the client_secrets.json file -found at: - -%s - -with information from the APIs Console <https://code.google.com/apis/console>. - -""" % os.path.join(os.path.dirname(__file__), CLIENT_SECRETS) - -# Set up a Flow object to be used if we need to authenticate. -FLOW = flow_from_clientsecrets(CLIENT_SECRETS, - scope='https://www.googleapis.com/auth/blogger', - message=MISSING_CLIENT_SECRETS_MESSAGE) - -# The gflags module makes defining command-line options easy for -# applications. Run this program with the '--help' argument to see -# all the flags that it understands. -gflags.DEFINE_enum('logging_level', 'ERROR', - ['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'], - 'Set the level of logging detail.') +from oauth2client import client +from apiclient import sample_tools def main(argv): - # Let the gflags module process the command-line arguments - try: - argv = FLAGS(argv) - except gflags.FlagsError, e: - print '%s\\nUsage: %s ARGS\\n%s' % (e, argv[0], FLAGS) - sys.exit(1) - - # Set the logging according to the command-line flag - logging.getLogger().setLevel(getattr(logging, FLAGS.logging_level)) - - # If the Credentials don't exist or are invalid run through the native client - # flow. The Storage object will ensure that if successful the good - # Credentials will get written back to a file. - storage = Storage('blogger.dat') - credentials = storage.get() - if credentials is None or credentials.invalid: - credentials = run(FLOW, storage) - - # Create an httplib2.Http object to handle our HTTP requests and authorize it - # with our good Credentials. - http = httplib2.Http() - http = credentials.authorize(http) + # Authenticate and construct service. + service, flags = sample_tools.init( + argv, 'plus', 'v1', __doc__, __file__, + scope='https://www.googleapis.com/auth/blogger') - service = build("blogger", "v2", http=http) + service = build('blogger', 'v2', http=http) try: users = service.users() # Retrieve this user's profile information - thisuser = users.get(userId="self").execute(http=http) - print "This user's display name is: %s" % thisuser['displayName'] + thisuser = users.get(userId='self').execute(http=http) + print 'This user\'s display name is: %s' % thisuser['displayName'] # Retrieve the list of Blogs this user has write privileges on - thisusersblogs = users.blogs().list(userId="self").execute() + thisusersblogs = users.blogs().list(userId='self').execute() for blog in thisusersblogs['items']: - print "The blog named \"%s\" is at: %s" % (blog['name'], blog['url']) + print 'The blog named \'%s\' is at: %s' % (blog['name'], blog['url']) posts = service.posts() # List the posts for each blog this user has for blog in thisusersblogs['items']: - print "The posts for %s:" % blog['name'] + print 'The posts for %s:' % blog['name'] request = posts.list(blogId=blog['id']) while request != None: posts_doc = request.execute(http=http) if 'items' in posts_doc and not (posts_doc['items'] is None): for post in posts_doc['items']: - print " %s (%s)" % (post['title'], post['url']) + print ' %s (%s)' % (post['title'], post['url']) request = posts.list_next(request, posts_doc) - except AccessTokenRefreshError: - print ("The credentials have been revoked or expired, please re-run" - "the application to re-authorize") + except client.AccessTokenRefreshError: + print ('The credentials have been revoked or expired, please re-run' + 'the application to re-authorize') if __name__ == '__main__': main(sys.argv) diff --git a/samples/coordinate/coordinate.py b/samples/coordinate/coordinate.py index 49ca852..289a2c8 100644 --- a/samples/coordinate/coordinate.py +++ b/samples/coordinate/coordinate.py @@ -38,91 +38,23 @@ To get detailed log output run: __author__ = 'zachn@google.com (Zach Newell)' -import gflags -import httplib2 -import logging -import os +import argparse import pprint import sys -from apiclient.discovery import build -from oauth2client.client import AccessTokenRefreshError -from oauth2client.client import flow_from_clientsecrets -from oauth2client.file import Storage -from oauth2client.tools import run +from oauth2client import client +from apiclient import sample_tools - -FLAGS = gflags.FLAGS - - -# CLIENT_SECRETS, name of a file containing the OAuth 2.0 information for this -# application, including client_id and client_secret, which are found -# on the API Access tab on the Google APIs -# Console <http://code.google.com/apis/console> -CLIENT_SECRETS = 'client_secrets.json' - -# Helpful message to display in the browser if the CLIENT_SECRETS file -# is missing. -MISSING_CLIENT_SECRETS_MESSAGE = """ -WARNING: Please configure OAuth 2.0 - -To make this sample run you will need to populate the client_secrets.json file -found at: - - %s - -with information from the APIs Console <https://code.google.com/apis/console>. - -""" % os.path.join(os.path.dirname(__file__), CLIENT_SECRETS) - -FLOW = flow_from_clientsecrets(CLIENT_SECRETS, - scope='https://www.googleapis.com/auth/coordinate', - message=MISSING_CLIENT_SECRETS_MESSAGE) - - -# The gflags module makes defining command-line options easy for -# applications. Run this program with the '--help' argument to see -# all the flags that it understands. -gflags.DEFINE_enum('logging_level', 'ERROR', - ['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'], - 'Set the level of logging detail.') - -gflags.DEFINE_string('teamId', None, 'Coordinate Team ID', short_name='t') - -# Create a validator for the teamId flag. -gflags.RegisterValidator('teamId', - lambda value: value is not None, - message='--teamId must be defined.', - flag_values=FLAGS) - -# Make the flag mandatory -gflags.MarkFlagAsRequired('teamId') +# Declare command-line flags. +argparser = argparse.ArgumentParser(add_help=False) +argparser.add_argument('teamId', help='Coordinate Team ID') def main(argv): - # Let the gflags module process the command-line arguments - try: - argv = FLAGS(argv) - except gflags.FlagsError, e: - print '%s\nUsage: %s ARGS\n%s' % (e, argv[0], FLAGS) - sys.exit(1) - - # Set the logging according to the command-line flag - logging.getLogger().setLevel(getattr(logging, FLAGS.logging_level)) - - # If the Credentials don't exist or are invalid run through the native client - # flow. The Storage object will ensure that if successful the good - # Credentials will get written back to a file. - storage = Storage('coordinate.dat') - credentials = storage.get() - - if credentials is None or credentials.invalid: - credentials = run(FLOW, storage) - - # Create an httplib2.Http object to handle our HTTP requests and authorize it - # with our good Credentials. - http = httplib2.Http() - http = credentials.authorize(http) + # Authenticate and construct service. + service, flags = sample_tools.init( + argv, 'coordinate', 'v1', __doc__, __file__, parents=[argparser], + scope='https://www.googleapis.com/auth/coordinate') service = build('coordinate', 'v1', http=http) @@ -142,7 +74,7 @@ def main(argv): # Insert a job and store the results insert_result = service.jobs().insert(body='', title='Google Campus', - teamId=FLAGS.teamId, + teamId=flags.teamId, address='1600 Amphitheatre Parkway Mountain View, CA 94043', lat='37.422120', lng='122.084429', @@ -153,7 +85,7 @@ def main(argv): # Close the job update_result = service.jobs().update(body='', - teamId=FLAGS.teamId, + teamId=flags.teamId, jobId=insert_result['id'], progress='COMPLETED').execute() |