This is python client library for Google's discovery based APIs.


Installation
============

To install, simply say

   $ easy_install --upgrade google-api-python-client


Running
=======

After following the install directions (using setup.py or setpath.sh) you
should be able to cd to samples/plus and run plus.py from there, which will use
the apiclient library to retrieve a snippet of text from each entry in Google
Plus. The first time you run it you will be prompted to authorize the
application to access your plus information.

   $ python samples/plus/plus.py


Third Party Libraries
=====================

These libraries will be installed when you install the client library:

http://code.google.com/p/httplib2
http://code.google.com/p/uri-templates
http://code.google.com/p/python-gflags
http://github.com/simplegeo/python-oauth2

Depending on your version of Python, these libraries may also be installed:

http://pypi.python.org/pypi/simplejson/

For development you will also need:

http://pythonpaste.org/webtest/
