1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # 4 # Copyright 2014 Google Inc. All Rights Reserved. 5 # 6 # Licensed under the Apache License, Version 2.0 (the "License"); 7 # you may not use this file except in compliance with the License. 8 # You may obtain a copy of the License at 9 # 10 # http://www.apache.org/licenses/LICENSE-2.0 11 # 12 # Unless required by applicable law or agreed to in writing, software 13 # distributed under the License is distributed on an "AS IS" BASIS, 14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 # See the License for the specific language governing permissions and 16 # limitations under the License. 17 18 """Simple command-line sample for Blogger. 19 20 Command-line application that retrieves the users blogs and posts. 21 22 Usage: 23 $ python blogger.py 24 25 You can also get help on all the command-line flags the program understands 26 by running: 27 28 $ python blogger.py --help 29 30 To get detailed log output run: 31 32 $ python blogger.py --logging_level=DEBUG 33 """ 34 from __future__ import print_function 35 36 __author__ = 'jcgregorio (at] google.com (Joe Gregorio)' 37 38 import sys 39 40 from oauth2client import client 41 from googleapiclient import sample_tools 42 43 44 def main(argv): 45 # Authenticate and construct service. 46 service, flags = sample_tools.init( 47 argv, 'blogger', 'v3', __doc__, __file__, 48 scope='https://www.googleapis.com/auth/blogger') 49 50 try: 51 52 users = service.users() 53 54 # Retrieve this user's profile information 55 thisuser = users.get(userId='self').execute() 56 print('This user\'s display name is: %s' % thisuser['displayName']) 57 58 blogs = service.blogs() 59 60 # Retrieve the list of Blogs this user has write privileges on 61 thisusersblogs = blogs.listByUser(userId='self').execute() 62 for blog in thisusersblogs['items']: 63 print('The blog named \'%s\' is at: %s' % (blog['name'], blog['url'])) 64 65 posts = service.posts() 66 67 # List the posts for each blog this user has 68 for blog in thisusersblogs['items']: 69 print('The posts for %s:' % blog['name']) 70 request = posts.list(blogId=blog['id']) 71 while request != None: 72 posts_doc = request.execute() 73 if 'items' in posts_doc and not (posts_doc['items'] is None): 74 for post in posts_doc['items']: 75 print(' %s (%s)' % (post['title'], post['url'])) 76 request = posts.list_next(request, posts_doc) 77 78 except client.AccessTokenRefreshError: 79 print ('The credentials have been revoked or expired, please re-run' 80 'the application to re-authorize') 81 82 if __name__ == '__main__': 83 main(sys.argv) 84