API

Integrate and Extend with Google Apps Administrative APIs

  Google Apps
Standard Edition
Google Apps
Premier Edition
Google Apps
Education Edition*
Provisioning API  
Reporting API  
Email Migration API  
Email Settings API  
Single Sign-On service  
Email gateway interface  
Shared Contacts Data API  
Contacts Data API
Calendar Data API
Documents List Data API
Spreadsheets Data API
2-legged OAuth Google Data access  
Gmail Atom feed

 

Management APIs

Google Apps and its APIs open up a wide variety of new opportunities to integrate and extend Google's communication and collaboration services. Domain adminstrators can use the APIs manage their domains, as well as migrate from and integrate with existing IT infrastructure. During adoption of Google Apps, the following APIs can be leveraged to migrate data from systems currently in use and to maintain stability in business processes through deep system integration.

Single Sign-On Service

This service interface allows you to plug in your own identity provider to authenticate users who are trying to access Google Apps services. By implementing the interface you retain ownership and management of user credentials and avoid requiring users to remember yet another password. It's based on the SAML v2.0 Standard XML-based framework for communicating user authentication information between business entities. The single sign-on service is only available in Google Apps Premier, Education and Partner Editions.

Reporting API

The Reporting API allows you to monitor the overall usage and utilization of Google Apps within your domain. Using this API, you can download a variety of CSV formatted reports about activity, storage, status, and more. This API is only available in Google Apps Premier, Education and Partner Editions.

Reporting Visualization API

The Reporting Visualiztion API allows you to monitor the overall usage and utilization of Google Apps within your domain. Using this API, you can visualize your reporting data with a variety of visualization gadgets provided by the developer community or custom visualizations for your specific needs. This API is only available in Google Apps Premier, Education and Partner Editions.

Provisioning API

The Provisioning API provides a mechanism to programmatically create and manage Google Apps user accounts, nicknames, and groups. Using this API you can minimize disruption to your organization's current processes by synchronizing user data between Google Apps and your existing user management system. This API is only available in Google Apps Premier, Education and Partner Editions.

Email Migration API

The Email Migration API enables you to migrate email from any data source into Google Apps. You can write extraction code which operates against an email server data store, interface protocol, or email client data store, then, using this API, upload the email messages to a target mailbox, specifying the correct labels, date, and status. The Email Migration API supports both end user tools and administrative tools. This API is only available in Google Apps Premier, Education and Partner Editions.

Application APIs

The application APIs use the Google data protocol to provide a simple way for reading and writing data on the web. An increasing number of Google services provide data APIs, so application developers should become familiar with the protocol. These APIs are based on the Atom and RSS syndication formats and the Atom publishing protocol, and also includes support for authentication, querying, and version conflict detection. Client applications can use any programming language that can issue HTTP requests and parse XML-based responses. Client libraries are avaialable in a variety of popular languages.

Domain Shared Contacts

The Shared Contacts API allows client applications to retrieve and update contacts that are shared to all users in the Apps domain.

Contacts Data API

With the Google Contacts Data API, developers can create client applications to manage a user's Gmail contacts. Developers can use the API to synchronize a user's Google contacts with contacts on a mobile device, maintain relationships between people in social applications, and give users the ability to communicate directly with their friends from external applications using phone, email, and IM.

Calendar Data API

The Google Calendar data API allows client applications to create new events, edit or delete existing events, and query for events that match particular criteria. This is the same API that is available to all Google Calendar developers so Google Apps developers can leverage and participate in that growing community. However with Google Apps a whole new set of calendar-based business applications become possible. Google Calendar's calendar sharing feature is that much more important in growing organizations with lots of group interactions and overlapping schedules. A client application has access to its user's private and accessible shared and group calendars. Application developers can interact with these calendars by creating front end applications powered by their event information or by creating applications that publish event information to them.

Documents List Data API

The Google Documents List Data API allows client applications to manage a user's Google Documents (spreadsheets, word processor, presentations) using the Google Data protocol. Your client application can query a user's list of documents, manage folders, request or update the contents of a document, and upload, edit, or delete specific documents.

Spreadsheets Data API

The Google Spreadsheets data API allows client applications to view and update spreadsheets content. This is the same API that is available to all Google Spreadsheets developers so Google Apps developers can leverage and participate in that growing community. Spreadsheets are at the heart of an increasing number of critical business applications ranging from modeling and analysis to communication and plannng. A client application can use this API to implement spreadsheet functionality or to extend the functionality provided by Google Spreadsheets. It can also simply use a spreadsheet as a database back end or it can publish data to a spreadsheet to provide users a more expressive view.

Email Settings API

The Email Settings API enables you to modify user-level Google Mail settings for any of the users at your domain. Using this API, you can change a user's forwarding, POP, or IMAP settings, set up an alias for them to send e-mail as, and more. This API is only available in Google Apps Premier, Education and Partner Editions.

2-legged OAuth for Google Apps Data

While OAuth authentication is available to all developers wishing to access the Google Data APIs, Premier and Education Edition administrators can enable a special kind of OAuth, called 2-legged OAuth. 2-legged OAuth allows administrators to act on behalf of end-users without their involvement and without requiring an access token as per the normal authorization flow (3-legged OAuth). As an example, administrators can use this feature to upload new documents to a user's account, add events to their Google Calendar, or create a new contact in their address book, all without the end-user's involvement.

Gmail Inbox Feed

Apps developers can utilize Gmail's Atom feed to request read-only access to a user's unread messages. To obtain access, you can use AuthSub or OAuth by requesting a token with scope=https://mail.google.com/mail/feed/atom/.

Start the Downloads

Many of you have been waiting patiently for the ability to download your Google Documents using the Documents List Data API. Today, I am very happy to announce the API's top feature request is finally live.

The undocumented (but widely used) RawDocContents url has been replaced by a more versatile Export servlet. Authenticated applications can now download documents in a number of different formats including pdf, doc, ppt, swf, xls, and more.

Exporting is available to all three authentication methods (ClientLogin, AuthSub, OAuth) and will work for developers using the DocList API with a Google Apps hosted domain.

Lastly, we've got samples!

For all the details on exporting your documents, see the documentation. As always, if you have questions, please visit us in the Documents List API forum.

 

>Original Article

OAuth and API access delegation

I recently read about OAuth - a standard for API access delegation. The idea is really quite simple - multiple sites need to collaborate, but there is no open standard to allow for this. OAuth to the rescue. OAuth defines the protocol to be used by such web-sites which need to collaborate.

Consider that I have an account on two web-sites. Say www.photos.com, which allows me to upload and manage my photo albums and www.prints.com, which allows to order prints of pictures. Now I need to print my photos from www.prints.com and I would have liked to access some of my pictures from www.photos.com (on my behalf) and make prints of those. OAuth can help these two websites collaborate.

Here is how it works - I go to www.prints.com and put in my request to order prints. It asks me for the location of the pictures and I choose www.photos.com. Using OAuth it takes me to www.photos.com, where I am authenticated and www.photos.com checks about the images I would like to share with www.prints.com and for how long. Then after I have granted the authorization, www.prints.com can retrieve the pictures from www.photos.com on my behalf and generate the required prints.

The good thing is that you use your credentials only on that particular website (in this www.photos.com) and never need to share your credentials with other websites. Also, the protocol provides for things in a secure manner.

For further reading check out the following links:
http://oauth.net/
http://oauth.net/documentation/getting-started

Details about leveraging OAuth to interface with google apps:
http://code.google.com/apis/accounts/docs/OAuth.html

Google has provided for a neat playground for one to understand OAuth:
http://googlecodesamples.com/oauth_playground/