Jeff Scudder, Eric Bidelman
The number of APIs made available for Google products has exploded from a handful to a slew! Get
the big picture on what is possible with the APIs for everything from YouTube, to Spreadsheets, to
Search, to Translate. We'll go over a few tools to help you get started and the things these APIs share
in common. After this session picking up new Google APIs will be a snap.
4. Why should you care?
60+ APIs
AJAX APIs, Google Data, OpenSocial, Maps, many more
Tools / Platforms
Apps Marketplace, App Engine, Android, Chrome, "Your Site"
Standard protocols
HTTP, RESTful APIs
Atom Publishing Protocol (XML), JSON, etc.
OAuth
Easy development
most products have APIs (no need to start from scratch)
open source client libraries
Gain large user base
build on top of popular Google services
mashups with other web services
5. Why should you care?
Developer Tools
Google Web Toolkit (cross browser Java -> JS compiler)
Web Elements (AJAX widgets)
Chart Tools
Google Eclipse Plugin
Closure Tools (JS compiler, library)
Secure Data Connector (access data behind the firewall)
...
Platforms
App Engine
Android
Chrome (extensions, HTML5 apps)
7. Today's Agenda
Web Elements
AJAX APIs
Google Data Protocol
APP, XML, REST, HTTP
under the hood: raw protocol demo
Authentication
…because private data is more interesting
Demos
web applications, gadgets, mashups
Questions & Answers
19. Example: Translate API
Request
GET ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=hello%
20world&langpair=en%7Cit
q = hello world
langpair = en|it
http://j.mp/translate-example
20. Example: Translate API
Response
{
"responseData": {
"translatedText":"ciao a tutti"
},
"responseDetails": null,
"responseStatus": 200
}
translatedText = "ciao a tutti"
21. REST
Create
POST /calendar/feeds/default/allcalendars/full
201 Created
Retrieve
GET /calendar/feeds/default/allcalendars/full
200 OK
Update
PUT /calendar/feeds/default/allcalendars/full/{ID}
200 OK
Delete
DELETE /calendar/feeds/default/allcalendars/full/{ID}
200 OK
23. Google Data Protocol Basics
HTTP, RESTful, ETags, OAuth
GET / POST / PUT / DELETE (e.g. CRUD)
Atom Publishing Protocol (XML), JSON, etc.
Feature Google Atom RSS 2.0
Extends the APP Data
authz for desktop/web/mobile Syndication Y Y Y
data model (<gd: Format
Queries Y N N
lastModifiedBy>)
batch operations Updates Y Y N
responses formats (json, jsonc, Optimistic Y N N
json-in-script) Concurrency
GData-Version: 2.0 Authenticatio Y N N
n
24. Example Request - Fetching Data
GET /feeds/default/private/full/ HTTP/1.1
Host: docs.google.com
GData-Version: 3.0
Authorization: OAuth oauth_token="ACCESS_TOKEN" ...
36. Authorization
Problems: Authentication is difficult
Private resources
Security considerations
Solution: Let Google handle it!
Authorization not Authentication
Tokens not credentials
User grants/denies access to their private data
37. OAuth
Similar to AuthSub
- single mode: ALL requests must be signed
Web OR Desktop apps
Open standard
- popularity (Google, Twitter, Facebook, Yahoo, Flickr)
- open source libraries: oauth.net
- reuse authentication code from another project
40. Read / Write JS Library
Handles the details of loading data from Google
Supports READ and WRITE operations
Multiple authentication methods (AuthSub/OAuth Proxy)
Works XD using iframe
Wraps the gadgets.io.makeRequest() function (in gadget
environments)
More info: http://bit.ly/js-client
44. Demo: Cloudie
Java library
Google Web Toolkit
App Engine
Docs / Spreadsheets
http://docs.cloudie.org
* Screenshot from: http://docs.cloudie.org, Developer: Bobby Soares
45. Relevant Sessions
Bringing Google to your site
Date: Tomorrow
Time: 10:45am-11:45am
Connecting your enterprise applications with Google Docs and Sites
Date: Thursday
Time: 11:30am-12:30pm
46. Resources
Google Data APIs:
http://code.google.com/apis/gdata/
OAuth Playground and other LIVE samples:
http://www.googlecodesamples.com/
AJAX APIs:
http://code.google.com/apis/ajax