SlideShare a Scribd company logo
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?

More Related Content

What's hot

Introducing Hangout Apps
Introducing Hangout AppsIntroducing Hangout Apps
Introducing Hangout Apps
Jonathan 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 Toolkit
IMC 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] : Datastore
IMC 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 Engine
IMC Institute
 
REST with Eve and Python
REST with Eve and PythonREST with Eve and Python
REST with Eve and Python
PiXeL16
 
Micro app-framework
Micro app-frameworkMicro app-framework
Micro app-framework
Michael Dawson
 
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
 
Android query
Android queryAndroid query
Android query
Michal Pavlasek
 
Php frameworks
Php frameworksPhp frameworks
Php frameworks
Anil Kumar Panigrahi
 
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
Robbie Cheng
 
Parse Advanced
Parse AdvancedParse Advanced
Parse Advanced
Tushar Acharya
 

What's hot (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
 

Viewers also liked

Hilverda De Boer USA Introduction 2014
Hilverda De Boer USA Introduction 2014Hilverda De Boer USA Introduction 2014
Hilverda De Boer USA Introduction 2014
susannelet
 
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
Software Sustainability Institute
 
#Hack4good 0.6 PalmDetective
#Hack4good 0.6 PalmDetective#Hack4good 0.6 PalmDetective
#Hack4good 0.6 PalmDetective
dizid
 
Thomas Coughlin
Thomas CoughlinThomas Coughlin
Thomas Coughlin
JordanStoval
 
A Psych-icle Built for Two
A Psych-icle Built for TwoA Psych-icle Built for Two
A Psych-icle Built for Two
Evan
 
T4 narratva anys_70
T4 narratva anys_70T4 narratva anys_70
T4 narratva anys_70
xexanelx
 
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
 
Collaborations Workshop Lightning Talks
Collaborations Workshop Lightning TalksCollaborations Workshop Lightning Talks
Collaborations Workshop Lightning Talks
Software Sustainability Institute
 
How Advertising Sells
How Advertising SellsHow Advertising Sells
How Advertising Sells
Miami Ad School/ESPM
 
Ipuin multimedia
Ipuin multimediaIpuin multimedia
Ipuin multimediaPozik
 
Ipuin multimedia
Ipuin multimediaIpuin multimedia
Ipuin multimediaPozik
 
Degisim zirvesi
Degisim zirvesiDegisim zirvesi
Degisim zirvesi
guest6ee3f9c
 
Tekno lana
Tekno lanaTekno lana
Tekno lanaPozik
 
Ipuin multimedia
Ipuin multimediaIpuin multimedia
Ipuin multimediaPozik
 

Viewers also liked (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
 

Similar to 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
 
前端概述
前端概述前端概述
前端概述
Ethan Zhang
 
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
Chris Schalk
 
HTML5 for Rich User Experience
HTML5 for Rich User ExperienceHTML5 for Rich User Experience
HTML5 for Rich User Experience
Mahbubur 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 2
Geoffrey 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 & more
wesley 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 QA
Alban 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' technocrat
Jonathan 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-oauth
ikailan
 
Google app engine by example
Google app engine by exampleGoogle app engine by example
Google app engine by example
Alexander Zamkovyi
 
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
wesley 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 Deadlines
Tikal 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 Engine
Tahir 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 needs
Microsoft 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 needs
Microsoft Tech Community
 

Similar to 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
 

Recently uploaded

The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 

Recently uploaded (20)

The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 

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