Home | History | Annotate | Download | only in blogger
      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