SlideShare une entreprise Scribd logo
1  sur  47
Télécharger pour lire hors ligne
The Big Picture and How to Get Started

Jeff Scudder, Eric Bidelman
5/18/2010
Quick Poll
Google RESTful APIs
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
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)
But we can't cover everything...
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
Google Ajax APIs
Available APIs

 Translate
 Language Detection
 Feeds
 Search
    News
    Local
    Image
    Video
    Blog
    Book
    Patent
    Custom (Web)
Adding custom search to your page


<div id="cse" />
Adding custom search to your page


 google.load('search', '1');
Adding custom search to your page

google.setOnLoadCallback(

 function(){

   new google.search.

    CustomSearchControl().

     draw('cse');

 }, true);
Adding custom search to your page
<!-- Google Custom Search Element -->

<div id="cse" style="width:100%;">Loading</div>

<script src="http://www.google.com/jsapi" type="text/javascript">
</script>

<script type="text/javascript">
 google.load('search', '1');

 google.setOnLoadCallback(function(){
  new google.search.CustomSearchControl().draw('cse');
 }, true);

</script>
The Ajax Playground




   code.google.com/apis/ajax/playground
Search APIs

 Google is known for search!
    LocalSearch, NewsSearch
    WebSearch, ImageSearch
    VideoSearch, PatentSearch
    BlogSearch, BookSearch

 Compatibility
    Firefox 1.5+, IE 6+, Safari, Opera 9+, Google Chrome

 Common loader
    google.load('search', '1');
    google.load('gdata', '1.x', {packages:['blogger']});
    google.load('maps', '2.s');
    google.load('earth', '1');
    google.load('jquery', '1.2.6', {uncompressed:true});
...not just JavaScript

   REST, JSON
  Examples in Flash, PHP, Java


http://ajax.googleapis.com/ajax/services/search/web
?v=1.0&q=Google%20IO"
HTTP?

 URL
 Client request to server
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
Example: Translate API

  Response

 {
  "responseData": {
   "translatedText":"ciao a tutti"
  },
  "responseDetails": null,
  "responseStatus": 200
 }




   translatedText = "ciao a tutti"
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
Google Data APIs
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
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" ...
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" ...
HTTP/1.1 200 OK

<feed xmlns='http://www.w3.org/2005/Atom'
    xmlns:gd='http://schemas.google.com/g/2005'>
 <title>Available Documents - john.doe@gmail.com</title>
 <entry>
  <id>http://docs.google.com/feeds/.../document%3Aabc123</id>
  ...
  <title type='text'>Document Title</title>
    <category scheme="..." term="..." label="document"/>
  <content type="text/html" src="..."/>
  <link rel="alternate" type="text/html" href="..."/>
  <link rel="edit" href="..."/>
  <author>...</author>
  <gd:resourceId>document:abc123</gd:resourceId>
  <gd:lastViewed>2009-04-09T17:13:17.453Z</gd:lastViewed>
  ...
 </entry>
 <entry>...</entry>
</feed>
Client Libraries




   Provide high level APIs to the protocol (better than
   XML!)

   Sample applications - http://tr.im/jQvc
"What Can I Build?"
Search / Discovery APIs
Admin. / Data Management APIs
Content Creation / Publishing APIs
Apps / Office Productivity APIs
20+ Data APIs and counting...
Wide variety of services
It's Your Data!

           http://www.dataliberation.org
Authorization
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
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
Demos
DEMO: Blogger Gadget

            http://bit.ly/blogger_gadget
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
Blogger Gadget - creating data
blogger.getBlogFeed('http://www.blogger.com/feeds/default/blogs', function(resp) {

 postData(resp.feed.getEntries()[0]);

}, handleError);



function postData(blog) {
 var newEntry = new google.gdata.blogger.BlogPostEntry({
   title: {
    type: 'text',
    text: 'New Blogger Gadget'
   },
   content: {
    type: 'text',
    text: "Isn't Blogger great?"
   },
   categories: [{
    scheme: 'http://www.blogger.com/atom/ns#',
Blogger Gadget - callback handlers

function handleInsert(entryRoot) {
    var href = entryRoot.entry.getHtmlLink().getHref();
    $('main').innerHTML = '<a href="' + href +
    '" target="new">View post</a>';
}


function handleError(e) {
    var msg = e.cause ? e.cause.statusText + ': ' : '';
    msg += e.message;
    alert('Error: ' + msg);
}
"What Can I Build?"
Demo: Cloudie

                                                                      Java library

                                                                      Google Web Toolkit

                                                                      App Engine

                                                                      Docs / Spreadsheets


             http://docs.cloudie.org



* Screenshot from: http://docs.cloudie.org, Developer: Bobby Soares
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
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
Questions?

Contenu connexe

Tendances

Introducing Hangout Apps
Introducing Hangout AppsIntroducing Hangout Apps
Introducing Hangout AppsJonathan Beri
 
Java Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
Java Web Programming on Google Cloud Platform [3/3] : Google Web ToolkitJava Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
Java Web Programming on Google Cloud Platform [3/3] : Google Web ToolkitIMC Institute
 
Java Web Programming on Google Cloud Platform [2/3] : Datastore
Java Web Programming on Google Cloud Platform [2/3] : DatastoreJava Web Programming on Google Cloud Platform [2/3] : Datastore
Java Web Programming on Google Cloud Platform [2/3] : DatastoreIMC Institute
 
Oleh Zasadnyy "Progressive Web Apps: line between web and native apps become ...
Oleh Zasadnyy "Progressive Web Apps: line between web and native apps become ...Oleh Zasadnyy "Progressive Web Apps: line between web and native apps become ...
Oleh Zasadnyy "Progressive Web Apps: line between web and native apps become ...IT Event
 
MongoDB World 2018: Time for a Change Stream - Using MongoDB Change Streams t...
MongoDB World 2018: Time for a Change Stream - Using MongoDB Change Streams t...MongoDB World 2018: Time for a Change Stream - Using MongoDB Change Streams t...
MongoDB World 2018: Time for a Change Stream - Using MongoDB Change Streams t...MongoDB
 
Parse: A Mobile Backend as a Service (MBaaS)
Parse: A Mobile Backend as a Service (MBaaS)Parse: A Mobile Backend as a Service (MBaaS)
Parse: A Mobile Backend as a Service (MBaaS)Ville Seppänen
 
RESTFUL SERVICES MADE EASY: THE EVE REST API FRAMEWORK - Nicola Iarocci - Co...
RESTFUL SERVICES MADE EASY: THE EVE REST API FRAMEWORK -  Nicola Iarocci - Co...RESTFUL SERVICES MADE EASY: THE EVE REST API FRAMEWORK -  Nicola Iarocci - Co...
RESTFUL SERVICES MADE EASY: THE EVE REST API FRAMEWORK - Nicola Iarocci - Co...Codemotion
 
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App EngineJava Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App EngineIMC Institute
 
REST with Eve and Python
REST with Eve and PythonREST with Eve and Python
REST with Eve and PythonPiXeL16
 
Grails Plugins(Console, DB Migration, Asset Pipeline and Remote pagination)
Grails Plugins(Console, DB Migration, Asset Pipeline and Remote pagination)Grails Plugins(Console, DB Migration, Asset Pipeline and Remote pagination)
Grails Plugins(Console, DB Migration, Asset Pipeline and Remote pagination)NexThoughts Technologies
 
Html5 tutorial
Html5 tutorialHtml5 tutorial
Html5 tutorialmadhavforu
 
Open Source Ajax Solution @OSDC.tw 2009
Open Source Ajax  Solution @OSDC.tw 2009Open Source Ajax  Solution @OSDC.tw 2009
Open Source Ajax Solution @OSDC.tw 2009Robbie Cheng
 

Tendances (18)

Introducing Hangout Apps
Introducing Hangout AppsIntroducing Hangout Apps
Introducing Hangout Apps
 
Java Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
Java Web Programming on Google Cloud Platform [3/3] : Google Web ToolkitJava Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
Java Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
 
Java Web Programming on Google Cloud Platform [2/3] : Datastore
Java Web Programming on Google Cloud Platform [2/3] : DatastoreJava Web Programming on Google Cloud Platform [2/3] : Datastore
Java Web Programming on Google Cloud Platform [2/3] : Datastore
 
Url programming
Url programmingUrl programming
Url programming
 
Oleh Zasadnyy "Progressive Web Apps: line between web and native apps become ...
Oleh Zasadnyy "Progressive Web Apps: line between web and native apps become ...Oleh Zasadnyy "Progressive Web Apps: line between web and native apps become ...
Oleh Zasadnyy "Progressive Web Apps: line between web and native apps become ...
 
MongoDB World 2018: Time for a Change Stream - Using MongoDB Change Streams t...
MongoDB World 2018: Time for a Change Stream - Using MongoDB Change Streams t...MongoDB World 2018: Time for a Change Stream - Using MongoDB Change Streams t...
MongoDB World 2018: Time for a Change Stream - Using MongoDB Change Streams t...
 
Servlets intro
Servlets introServlets intro
Servlets intro
 
Parse: A Mobile Backend as a Service (MBaaS)
Parse: A Mobile Backend as a Service (MBaaS)Parse: A Mobile Backend as a Service (MBaaS)
Parse: A Mobile Backend as a Service (MBaaS)
 
RESTFUL SERVICES MADE EASY: THE EVE REST API FRAMEWORK - Nicola Iarocci - Co...
RESTFUL SERVICES MADE EASY: THE EVE REST API FRAMEWORK -  Nicola Iarocci - Co...RESTFUL SERVICES MADE EASY: THE EVE REST API FRAMEWORK -  Nicola Iarocci - Co...
RESTFUL SERVICES MADE EASY: THE EVE REST API FRAMEWORK - Nicola Iarocci - Co...
 
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App EngineJava Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
 
REST with Eve and Python
REST with Eve and PythonREST with Eve and Python
REST with Eve and Python
 
Micro app-framework
Micro app-frameworkMicro app-framework
Micro app-framework
 
Grails Plugins(Console, DB Migration, Asset Pipeline and Remote pagination)
Grails Plugins(Console, DB Migration, Asset Pipeline and Remote pagination)Grails Plugins(Console, DB Migration, Asset Pipeline and Remote pagination)
Grails Plugins(Console, DB Migration, Asset Pipeline and Remote pagination)
 
Html5 tutorial
Html5 tutorialHtml5 tutorial
Html5 tutorial
 
Android query
Android queryAndroid query
Android query
 
Php frameworks
Php frameworksPhp frameworks
Php frameworks
 
Open Source Ajax Solution @OSDC.tw 2009
Open Source Ajax  Solution @OSDC.tw 2009Open Source Ajax  Solution @OSDC.tw 2009
Open Source Ajax Solution @OSDC.tw 2009
 
Parse Advanced
Parse AdvancedParse Advanced
Parse Advanced
 

En vedette

Hilverda De Boer USA Introduction 2014
Hilverda De Boer USA Introduction 2014Hilverda De Boer USA Introduction 2014
Hilverda De Boer USA Introduction 2014susannelet
 
#Hack4good 0.6 PalmDetective
#Hack4good 0.6 PalmDetective#Hack4good 0.6 PalmDetective
#Hack4good 0.6 PalmDetectivedizid
 
A Psych-icle Built for Two
A Psych-icle Built for TwoA Psych-icle Built for Two
A Psych-icle Built for TwoEvan
 
T4 narratva anys_70
T4 narratva anys_70T4 narratva anys_70
T4 narratva anys_70xexanelx
 
Data Shaping Consumer Decisions and 5 Key Trends in User Behaviour and Tech...
Data Shaping Consumer Decisions and 5 Key Trends in User Behaviour and Tech...Data Shaping Consumer Decisions and 5 Key Trends in User Behaviour and Tech...
Data Shaping Consumer Decisions and 5 Key Trends in User Behaviour and Tech...Miami Ad School/ESPM
 
Ipuin multimedia
Ipuin multimediaIpuin multimedia
Ipuin multimediaPozik
 
Ipuin multimedia
Ipuin multimediaIpuin multimedia
Ipuin multimediaPozik
 
Tekno lana
Tekno lanaTekno lana
Tekno lanaPozik
 
Ipuin multimedia
Ipuin multimediaIpuin multimedia
Ipuin multimediaPozik
 

En vedette (17)

Daily cleaners
Daily  cleanersDaily  cleaners
Daily cleaners
 
Hilverda De Boer USA Introduction 2014
Hilverda De Boer USA Introduction 2014Hilverda De Boer USA Introduction 2014
Hilverda De Boer USA Introduction 2014
 
Sustainability Training Workshop - Intro to the SSI
Sustainability Training Workshop - Intro to the SSISustainability Training Workshop - Intro to the SSI
Sustainability Training Workshop - Intro to the SSI
 
#Hack4good 0.6 PalmDetective
#Hack4good 0.6 PalmDetective#Hack4good 0.6 PalmDetective
#Hack4good 0.6 PalmDetective
 
Thomas Coughlin
Thomas CoughlinThomas Coughlin
Thomas Coughlin
 
A Psych-icle Built for Two
A Psych-icle Built for TwoA Psych-icle Built for Two
A Psych-icle Built for Two
 
T4 narratva anys_70
T4 narratva anys_70T4 narratva anys_70
T4 narratva anys_70
 
Power point 2
Power point 2Power point 2
Power point 2
 
Data Shaping Consumer Decisions and 5 Key Trends in User Behaviour and Tech...
Data Shaping Consumer Decisions and 5 Key Trends in User Behaviour and Tech...Data Shaping Consumer Decisions and 5 Key Trends in User Behaviour and Tech...
Data Shaping Consumer Decisions and 5 Key Trends in User Behaviour and Tech...
 
Collaborations Workshop Lightning Talks
Collaborations Workshop Lightning TalksCollaborations Workshop Lightning Talks
Collaborations Workshop Lightning Talks
 
How Advertising Sells
How Advertising SellsHow Advertising Sells
How Advertising Sells
 
for friends
for friendsfor friends
for friends
 
Ipuin multimedia
Ipuin multimediaIpuin multimedia
Ipuin multimedia
 
Ipuin multimedia
Ipuin multimediaIpuin multimedia
Ipuin multimedia
 
Degisim zirvesi
Degisim zirvesiDegisim zirvesi
Degisim zirvesi
 
Tekno lana
Tekno lanaTekno lana
Tekno lana
 
Ipuin multimedia
Ipuin multimediaIpuin multimedia
Ipuin multimedia
 

Similaire à The Big Picture and How to Get Started

Google Apps Script: The authentic{ated} playground [2015 Ed.]
Google Apps Script: The authentic{ated} playground [2015 Ed.]Google Apps Script: The authentic{ated} playground [2015 Ed.]
Google Apps Script: The authentic{ated} playground [2015 Ed.]Martin Hawksey
 
Intro to new Google cloud technologies: Google Storage, Prediction API, BigQuery
Intro to new Google cloud technologies: Google Storage, Prediction API, BigQueryIntro to new Google cloud technologies: Google Storage, Prediction API, BigQuery
Intro to new Google cloud technologies: Google Storage, Prediction API, BigQueryChris Schalk
 
HTML5 for Rich User Experience
HTML5 for Rich User ExperienceHTML5 for Rich User Experience
HTML5 for Rich User ExperienceMahbubur Rahman
 
CTS Conference Web 2.0 Tutorial Part 2
CTS Conference Web 2.0 Tutorial Part 2CTS Conference Web 2.0 Tutorial Part 2
CTS Conference Web 2.0 Tutorial Part 2Geoffrey Fox
 
Build an AI/ML-driven image archive processing workflow: Image archive, analy...
Build an AI/ML-driven image archive processing workflow: Image archive, analy...Build an AI/ML-driven image archive processing workflow: Image archive, analy...
Build an AI/ML-driven image archive processing workflow: Image archive, analy...wesley chun
 
Power your apps with Gmail, Google Drive, Calendar, Sheets, Slides & more
Power your apps with Gmail, Google Drive, Calendar, Sheets, Slides & morePower your apps with Gmail, Google Drive, Calendar, Sheets, Slides & more
Power your apps with Gmail, Google Drive, Calendar, Sheets, Slides & morewesley chun
 
Spicy javascript: Create your first Chrome extension for web analytics QA
Spicy javascript: Create your first Chrome extension for web analytics QASpicy javascript: Create your first Chrome extension for web analytics QA
Spicy javascript: Create your first Chrome extension for web analytics QAAlban Gérôme
 
Googleappengineintro 110410190620-phpapp01
Googleappengineintro 110410190620-phpapp01Googleappengineintro 110410190620-phpapp01
Googleappengineintro 110410190620-phpapp01Tony Frame
 
12 core technologies you should learn, love, and hate to be a 'real' technocrat
12 core technologies you should learn, love, and hate to be a 'real' technocrat12 core technologies you should learn, love, and hate to be a 'real' technocrat
12 core technologies you should learn, love, and hate to be a 'real' technocratJonathan Linowes
 
2011 august-gdd-mexico-city-rest-json-oauth
2011 august-gdd-mexico-city-rest-json-oauth2011 august-gdd-mexico-city-rest-json-oauth
2011 august-gdd-mexico-city-rest-json-oauthikailan
 
Exploring Google (Cloud) APIs with Python & JavaScript
Exploring Google (Cloud) APIs with Python & JavaScriptExploring Google (Cloud) APIs with Python & JavaScript
Exploring Google (Cloud) APIs with Python & JavaScriptwesley chun
 
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考えるIt is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考えるSadaaki HIRAI
 
JBUG 11 - Django-The Web Framework For Perfectionists With Deadlines
JBUG 11 - Django-The Web Framework For Perfectionists With DeadlinesJBUG 11 - Django-The Web Framework For Perfectionists With Deadlines
JBUG 11 - Django-The Web Framework For Perfectionists With DeadlinesTikal Knowledge
 
Frank Mantek Google G Data
Frank Mantek Google G DataFrank Mantek Google G Data
Frank Mantek Google G Datadeimos
 
Google cloud platform
Google cloud platformGoogle cloud platform
Google cloud platformrajdeep
 
Developing Java Web Applications In Google App Engine
Developing Java Web Applications In Google App EngineDeveloping Java Web Applications In Google App Engine
Developing Java Web Applications In Google App EngineTahir Akram
 
Microsoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needsMicrosoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needsMicrosoft Tech Community
 
Microsoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needsMicrosoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needsMicrosoft Tech Community
 

Similaire à The Big Picture and How to Get Started (20)

Google Apps Script: The authentic{ated} playground [2015 Ed.]
Google Apps Script: The authentic{ated} playground [2015 Ed.]Google Apps Script: The authentic{ated} playground [2015 Ed.]
Google Apps Script: The authentic{ated} playground [2015 Ed.]
 
前端概述
前端概述前端概述
前端概述
 
Intro to new Google cloud technologies: Google Storage, Prediction API, BigQuery
Intro to new Google cloud technologies: Google Storage, Prediction API, BigQueryIntro to new Google cloud technologies: Google Storage, Prediction API, BigQuery
Intro to new Google cloud technologies: Google Storage, Prediction API, BigQuery
 
HTML5 for Rich User Experience
HTML5 for Rich User ExperienceHTML5 for Rich User Experience
HTML5 for Rich User Experience
 
CTS Conference Web 2.0 Tutorial Part 2
CTS Conference Web 2.0 Tutorial Part 2CTS Conference Web 2.0 Tutorial Part 2
CTS Conference Web 2.0 Tutorial Part 2
 
Build an AI/ML-driven image archive processing workflow: Image archive, analy...
Build an AI/ML-driven image archive processing workflow: Image archive, analy...Build an AI/ML-driven image archive processing workflow: Image archive, analy...
Build an AI/ML-driven image archive processing workflow: Image archive, analy...
 
Power your apps with Gmail, Google Drive, Calendar, Sheets, Slides & more
Power your apps with Gmail, Google Drive, Calendar, Sheets, Slides & morePower your apps with Gmail, Google Drive, Calendar, Sheets, Slides & more
Power your apps with Gmail, Google Drive, Calendar, Sheets, Slides & more
 
Spicy javascript: Create your first Chrome extension for web analytics QA
Spicy javascript: Create your first Chrome extension for web analytics QASpicy javascript: Create your first Chrome extension for web analytics QA
Spicy javascript: Create your first Chrome extension for web analytics QA
 
Googleappengineintro 110410190620-phpapp01
Googleappengineintro 110410190620-phpapp01Googleappengineintro 110410190620-phpapp01
Googleappengineintro 110410190620-phpapp01
 
12 core technologies you should learn, love, and hate to be a 'real' technocrat
12 core technologies you should learn, love, and hate to be a 'real' technocrat12 core technologies you should learn, love, and hate to be a 'real' technocrat
12 core technologies you should learn, love, and hate to be a 'real' technocrat
 
2011 august-gdd-mexico-city-rest-json-oauth
2011 august-gdd-mexico-city-rest-json-oauth2011 august-gdd-mexico-city-rest-json-oauth
2011 august-gdd-mexico-city-rest-json-oauth
 
Google app engine by example
Google app engine by exampleGoogle app engine by example
Google app engine by example
 
Exploring Google (Cloud) APIs with Python & JavaScript
Exploring Google (Cloud) APIs with Python & JavaScriptExploring Google (Cloud) APIs with Python & JavaScript
Exploring Google (Cloud) APIs with Python & JavaScript
 
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考えるIt is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
 
JBUG 11 - Django-The Web Framework For Perfectionists With Deadlines
JBUG 11 - Django-The Web Framework For Perfectionists With DeadlinesJBUG 11 - Django-The Web Framework For Perfectionists With Deadlines
JBUG 11 - Django-The Web Framework For Perfectionists With Deadlines
 
Frank Mantek Google G Data
Frank Mantek Google G DataFrank Mantek Google G Data
Frank Mantek Google G Data
 
Google cloud platform
Google cloud platformGoogle cloud platform
Google cloud platform
 
Developing Java Web Applications In Google App Engine
Developing Java Web Applications In Google App EngineDeveloping Java Web Applications In Google App Engine
Developing Java Web Applications In Google App Engine
 
Microsoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needsMicrosoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needs
 
Microsoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needsMicrosoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needs
 

Dernier

Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 

Dernier (20)

Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 

The Big Picture and How to Get Started

  • 1. The Big Picture and How to Get Started Jeff Scudder, Eric Bidelman 5/18/2010
  • 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)
  • 6. But we can't cover everything...
  • 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
  • 8.
  • 10. Available APIs Translate Language Detection Feeds Search News Local Image Video Blog Book Patent Custom (Web)
  • 11. Adding custom search to your page <div id="cse" />
  • 12. Adding custom search to your page google.load('search', '1');
  • 13. Adding custom search to your page google.setOnLoadCallback( function(){ new google.search. CustomSearchControl(). draw('cse'); }, true);
  • 14. Adding custom search to your page <!-- Google Custom Search Element --> <div id="cse" style="width:100%;">Loading</div> <script src="http://www.google.com/jsapi" type="text/javascript"> </script> <script type="text/javascript"> google.load('search', '1'); google.setOnLoadCallback(function(){ new google.search.CustomSearchControl().draw('cse'); }, true); </script>
  • 15. The Ajax Playground code.google.com/apis/ajax/playground
  • 16. Search APIs Google is known for search! LocalSearch, NewsSearch WebSearch, ImageSearch VideoSearch, PatentSearch BlogSearch, BookSearch Compatibility Firefox 1.5+, IE 6+, Safari, Opera 9+, Google Chrome Common loader google.load('search', '1'); google.load('gdata', '1.x', {packages:['blogger']}); google.load('maps', '2.s'); google.load('earth', '1'); google.load('jquery', '1.2.6', {uncompressed:true});
  • 17. ...not just JavaScript REST, JSON Examples in Flash, PHP, Java http://ajax.googleapis.com/ajax/services/search/web ?v=1.0&q=Google%20IO"
  • 18. HTTP? URL Client request to server
  • 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" ...
  • 25. 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" ... HTTP/1.1 200 OK <feed xmlns='http://www.w3.org/2005/Atom' xmlns:gd='http://schemas.google.com/g/2005'> <title>Available Documents - john.doe@gmail.com</title> <entry> <id>http://docs.google.com/feeds/.../document%3Aabc123</id> ... <title type='text'>Document Title</title> <category scheme="..." term="..." label="document"/> <content type="text/html" src="..."/> <link rel="alternate" type="text/html" href="..."/> <link rel="edit" href="..."/> <author>...</author> <gd:resourceId>document:abc123</gd:resourceId> <gd:lastViewed>2009-04-09T17:13:17.453Z</gd:lastViewed> ... </entry> <entry>...</entry> </feed>
  • 26. Client Libraries Provide high level APIs to the protocol (better than XML!) Sample applications - http://tr.im/jQvc
  • 27. "What Can I Build?"
  • 29. Admin. / Data Management APIs
  • 30. Content Creation / Publishing APIs
  • 31. Apps / Office Productivity APIs
  • 32. 20+ Data APIs and counting...
  • 33. Wide variety of services
  • 34. It's Your Data! http://www.dataliberation.org
  • 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
  • 38. Demos
  • 39. DEMO: Blogger Gadget http://bit.ly/blogger_gadget
  • 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
  • 41. Blogger Gadget - creating data blogger.getBlogFeed('http://www.blogger.com/feeds/default/blogs', function(resp) { postData(resp.feed.getEntries()[0]); }, handleError); function postData(blog) { var newEntry = new google.gdata.blogger.BlogPostEntry({ title: { type: 'text', text: 'New Blogger Gadget' }, content: { type: 'text', text: "Isn't Blogger great?" }, categories: [{ scheme: 'http://www.blogger.com/atom/ns#',
  • 42. Blogger Gadget - callback handlers function handleInsert(entryRoot) { var href = entryRoot.entry.getHtmlLink().getHref(); $('main').innerHTML = '<a href="' + href + '" target="new">View post</a>'; } function handleError(e) { var msg = e.cause ? e.cause.statusText + ': ' : ''; msg += e.message; alert('Error: ' + msg); }
  • 43. "What Can I Build?"
  • 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