Google provides a number of free services which are available as easy to call APIs very useful to build a standard web application. Many of the services provide core functionality required in all web applications which could require a significant amount of effort if you attempt to build from scratch. Instead by using these services it should be possible to bootstrap an application with a very short turn around and focus on the core business logic that the application needs to provide. In this post we will cover some of the useful services available and how they can be utilized from any web application.
Google provides a few options for using the existing Google Authentication model to build the authentication layer for a web application.
- Users Service: This is a simple user service which can be used by the application to integrate with Google Accounts. Users can use their Google Accounts to sign into the application.
- OAuth: OAuth is a protocol that allows a user to grant a third party limited permission to access a web application on behalf of the user without sharing credential information with the third party. For example if you are building a travel application you can add an itenery into the users Google Calendar automatically. This can be done once the user authorizes the Travel application to access their calendar application. The credentials of the user is never shared with the Travel web application
- Client Login: Client Login allows users to login into their google accounts from within the application. The application would then contact Google with the login information and request access to a specific Google Data API and gets a token which will be used by the application for the life of the token.
Events, Meetings, Calendar Management
Google has a great Calendar component which provides a number of interesting features like creating new Events, Meetings, Single Occurrence and Multi Occurrence Event, Calendar Subscriptions, Reminders and Notifications among other features. There are a number of applications which may need such functionality and it would be best to utilize the Google Services rather than build this functionality from scratch. Python and Java client libraries are available for easily utilizing Calendar Data API.
The Contacts Data API provides applications the ability to use the contacts features available under Google Accounts to create new contacts, delete contacts and also query contacts. In addition it supports functionality to load a Photo with the contact. This is a great set of features to be used in any application which needs to maintain an address book or a contact list.
The Documents List Data API provides functionality to upload various formats of documents including spreadsheets, word documents and presentations. You can also retrieve a specific document by a title or a group of documents within a folder. You can also update Metadata for a specific document. Any application which requires document management functionality for uploading and maintaining documents will find this API very useful for that purpose.
The Youtube Data API allows applications to manage video content on Youtube directly using the API. It supports various functionality including fetch, search and updated videos, including comments, playlists among others.
The Picassa Web Albums API allows client applications to manage image content on the Picassa web albums. Client Applications can use the API to create new albums, upload photos, add comments, or delete an album among other actions.
Spreadsheets/Simple Data Storage
The Google Spreadsheet API allows client applications to update spreadsheet data using the API. This includes requesting a list of user spreadsheets, edit or delete content in a spreadsheet and query content in an existing spreadsheet among other actions. The spreadsheet is also a great way to store data in a simple tabular structure and use it as a database. For many simple applications the spreadsheet could serve as the backend database.
We will follow up in some future posts with examples on how each of the above services can be integrated into sample applications deployed on Google App Engine. Utilizing these services should not only reduce the overall development time for building an app it also benefits from providing the rich functionality of these highly popular and well established services to enrich the overall user experience in the application.
For more details check our Tech Blog