SlideShare a Scribd company logo
Introduction to Google Apps
Platform
Prasetyo Andy W.
@praw
Who am I?
What are we talking about?
Google Apps Platform

Apps Script
Application APIs
Domain Admin APIs
Auth APIs
What is Google Apps
Script?
Apps Script


JavaScript cloud scripting language
Automate tasks across Google products and 3rd party
services
What you can do with it?

Automate repetitive processes and workflows
Link Google products with third party services
Create custom spreadsheet functions
Build rich GUI and menus
Development Environment


Browser
No client libraries needed to install and server to
maintain
Direct access http://script.google.com
Prerequisites


 Google Account
 Supported web browser
 Basic understanding of JavaScript
Google Apps Script Security
Model
Grant access needed to any scripts you run that accesses
private data
Script permission level and access
  Standalone scripts
  Container-bound scripts
    Container owner
    Container editor
    Container viewer
Building your first script

 We will create standalone script
 There are two ways to create a new standalone script:
   From Google Drive, choose Create > More > Script
   Go to https://script.google.com
Building your first script


 Let’s try to create a simple one:
   create a new Google Docs
   email you a link to the newly created document
Introduction to Google Apps Platform
Executing a script
 Script editor
 Custom function in a spreadsheet
 Web app
 Gadget in Google sites
 Container extension
 Time-driven trigger
 Container-specific trigger
Executing a script
click Run icon or choose Run >
createAndSendDocument from the menu
More about Apps Script



Tutorials: https://developers.google.com/apps-script/
articles
Building user interfaces


 HTML Service
 UI Service
 GUI Builder
Storing data

 Script and user properties
 ScriptDb
 Spreadsheets
 JDBC
Events and Triggers
Events: action that happens when the state of an
object changes
  Clock tick events
  Script installation events
  Spreadsheet open events
  Spreadsheet edit events
  Spreadsheet form submit events
Events and Triggers


Trigger: type of script resource that listens to a
particular event and executes a function when that
event fires
Now, let’s talk about
Application API
Application API

 Allow developers to write applications that access
 Google Applications: Gmail, Calendar, and many others
 using Google Data APIs, Gadgets and Google Apps
 Script
 Based on JSON and Atom and RSS syndication
 formats and the Atom publishing protocol
Application APIs
 Calendar API
 Tasks API
 Gmail API
 Contacts API
 Document List API
 Spreadsheet API
 Site API
Prerequisites

 Get a Google Account
 Try out Google apps (Calendar, Contacts, Docs, etc)
 Register your project, visit APIs Console (https://
 code.google.com/apis/console)
 Learn about REST
 Learn about JSON data format
Invoke the API


 Using REST directly
 Using client libraries
Restful APIs


 https://www.googleapis.com/{apiName}/{apiVersion}/
 {resourcePath}?{parameters}
 Returns JSON format
Client Library
 Client library is available for:
   Java
   PHP
   Python
   .NET
   Ruby
Calendar API

Lets you develop client applications that create new
events, edit or delete existing events, and search for
events
Integrates your apps with Google Calendar, suits for
apps that need to display Calendar and synchronizes it
with Google Calendar
Uses JSON starting on v3
Tasks API

provides developers with a powerful set of API
endpoints for searching, reading, and updating Google
Tasks content and metadata
Various integration projects with web apps or other
Google APIs, use Google Task API to manage Google
task lists in a mobile app
Gmail API
Help you and your users interact with, configure, and extend Gmail
Some possibilities:
  Gadgets
  OAuth Access to IMAP or SMTP
  IMAP Extension
  Gmail Inbox Feed
  Email Migration API
  Email Settings API
Contacts API


Allows client applications to create, edit or delete user’s
contacts
Supports protocol (via curl or wget), Java, .NET and
Python
Document List API

Allows developer to create, retrieve, update and delete
Google Docs
Included advanced features like resource archives,
OCR (Optical Character Recognition), translation and
revision history
Useful for storing data in the cloud, perform resource
management, convert document formats, etc
Spreadsheets API


Managing worksheets in a Google spreadsheet
Consuming the rows of a worksheet
Managing cells in a worksheet by position
Spreadsheets API

Common examples:
 Computing financial data stored in an inaccessible
 system
 Presenting statistics to users in a web browser
 Consuming data entered into a spreadsheet by a
 user
Sites API


 Allows client applications to access, publish, and
 modify content within a Google Site
 Access and modify Google Site data using Google
 Data API feeds
You can do it all, if we
implement Auth APIs
Auth API



Allows third-party applications to get limited access to
a user’s Google accounts for certain types of activities
Auth API

OAuth 2.0
OAuth 1.0
Hybrid Protocol
OpenID
OAuth 2.0


Used for authentication and authorization
Relatively simple
OAuth 2.0

Four steps of accessing Google API using OAuth 2.0:
  1. Register application
  2. Obtain an access token from the Google
    Authorization Server
  3. Send the Access Token
  4. Refresh the Access Token
OAuth 2.0 scenarios
Login
Web server
Client-side
Installed apps
Devices
Services accounts
OAuth 2.0
Endpoint: https://accounts.google.com/o/oauth2/
auth2
Parameters:
  response_type
  redirect_uri
  scope
  state
Okay, let’s move on and talk
about Domain Admin API
Domain Admin APIs
Allows developers to write applications to manage
Google Apps domains
Migrate from and integrate with existing IT
infrastructure, create users, update settings, audit
activity and more
Based on JSON for Admin Audit API and Groups
Settings API, others are based on RSS syndication
formats
Domain Admin API
Audit API               Email Migration API
  Admin Audit API       Email Settings API
  Email Audit API       Groups Settings API
Admin Settings API      Provisioning API
Calendar Resource API   Reporting API
Shared Contacts API     User Profiles API
Examples
Au-to-do
Examples
Au-to-do
Examples
Hojoki.com
Examples
Hojoki.com
Thank you!
Prasetyo Andy W.
     @praw
Ad

More Related Content

What's hot (20)

Introduction to Google App Engine
Introduction to Google App EngineIntroduction to Google App Engine
Introduction to Google App Engine
Kanda Runapongsa Saikaew
 
Introduction to Google Cloud Endpoints: Speed Up Your API Development
Introduction to Google Cloud Endpoints: Speed Up Your API DevelopmentIntroduction to Google Cloud Endpoints: Speed Up Your API Development
Introduction to Google Cloud Endpoints: Speed Up Your API Development
Colin Su
 
Android dev tips
Android dev tipsAndroid dev tips
Android dev tips
Kanda Runapongsa Saikaew
 
R.A.P. (Rely on Android Platform)
R.A.P. (Rely on Android Platform)R.A.P. (Rely on Android Platform)
R.A.P. (Rely on Android Platform)
Aditium
 
Firebase
FirebaseFirebase
Firebase
Manasa Mona
 
Building event driven serverless apps by Danilo Poccia at Codemotion Dubai
Building event driven serverless apps by Danilo Poccia at Codemotion DubaiBuilding event driven serverless apps by Danilo Poccia at Codemotion Dubai
Building event driven serverless apps by Danilo Poccia at Codemotion Dubai
Codemotion Dubai
 
SharePoint 2013 “App Model” Developing and Deploying Provider Hosted Apps
SharePoint 2013 “App Model” Developing and Deploying Provider Hosted AppsSharePoint 2013 “App Model” Developing and Deploying Provider Hosted Apps
SharePoint 2013 “App Model” Developing and Deploying Provider Hosted Apps
Sanjay Patel
 
spm
spmspm
spm
guest05165f
 
Developer’s Independence Day: Introducing the SharePoint App Model
Developer’s Independence Day:Introducing the SharePoint App ModelDeveloper’s Independence Day:Introducing the SharePoint App Model
Developer’s Independence Day: Introducing the SharePoint App Model
bgerman
 
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
NCCOMMS
 
Mule google connectors
Mule google connectorsMule google connectors
Mule google connectors
Praneethchampion
 
Connecting google
Connecting googleConnecting google
Connecting google
Son Nguyen
 
HTML5 New and Improved
HTML5   New and ImprovedHTML5   New and Improved
HTML5 New and Improved
Timothy Fisher
 
Google App Engine - Overview #1
Google App Engine - Overview #1Google App Engine - Overview #1
Google App Engine - Overview #1
Kay Kim
 
Firebase on Android: The Big Picture
Firebase on Android: The Big PictureFirebase on Android: The Big Picture
Firebase on Android: The Big Picture
Sriyank Siddhartha
 
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
BlueMetalInc
 
Mule connectors
Mule connectorsMule connectors
Mule connectors
Vamsi Krishna
 
O365Con18 - Introduction to Azure Web Applications - Eric Shupps
O365Con18 - Introduction to Azure Web Applications  - Eric ShuppsO365Con18 - Introduction to Azure Web Applications  - Eric Shupps
O365Con18 - Introduction to Azure Web Applications - Eric Shupps
NCCOMMS
 
App Model For SharePoint 2013
App Model For SharePoint 2013App Model For SharePoint 2013
App Model For SharePoint 2013
Toni Il Caiser
 
Eventbus Library and How Does it Work?
Eventbus Library and How Does it Work?Eventbus Library and How Does it Work?
Eventbus Library and How Does it Work?
InnovationM
 
Introduction to Google Cloud Endpoints: Speed Up Your API Development
Introduction to Google Cloud Endpoints: Speed Up Your API DevelopmentIntroduction to Google Cloud Endpoints: Speed Up Your API Development
Introduction to Google Cloud Endpoints: Speed Up Your API Development
Colin Su
 
R.A.P. (Rely on Android Platform)
R.A.P. (Rely on Android Platform)R.A.P. (Rely on Android Platform)
R.A.P. (Rely on Android Platform)
Aditium
 
Building event driven serverless apps by Danilo Poccia at Codemotion Dubai
Building event driven serverless apps by Danilo Poccia at Codemotion DubaiBuilding event driven serverless apps by Danilo Poccia at Codemotion Dubai
Building event driven serverless apps by Danilo Poccia at Codemotion Dubai
Codemotion Dubai
 
SharePoint 2013 “App Model” Developing and Deploying Provider Hosted Apps
SharePoint 2013 “App Model” Developing and Deploying Provider Hosted AppsSharePoint 2013 “App Model” Developing and Deploying Provider Hosted Apps
SharePoint 2013 “App Model” Developing and Deploying Provider Hosted Apps
Sanjay Patel
 
Developer’s Independence Day: Introducing the SharePoint App Model
Developer’s Independence Day:Introducing the SharePoint App ModelDeveloper’s Independence Day:Introducing the SharePoint App Model
Developer’s Independence Day: Introducing the SharePoint App Model
bgerman
 
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
NCCOMMS
 
Connecting google
Connecting googleConnecting google
Connecting google
Son Nguyen
 
HTML5 New and Improved
HTML5   New and ImprovedHTML5   New and Improved
HTML5 New and Improved
Timothy Fisher
 
Google App Engine - Overview #1
Google App Engine - Overview #1Google App Engine - Overview #1
Google App Engine - Overview #1
Kay Kim
 
Firebase on Android: The Big Picture
Firebase on Android: The Big PictureFirebase on Android: The Big Picture
Firebase on Android: The Big Picture
Sriyank Siddhartha
 
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
BlueMetalInc
 
O365Con18 - Introduction to Azure Web Applications - Eric Shupps
O365Con18 - Introduction to Azure Web Applications  - Eric ShuppsO365Con18 - Introduction to Azure Web Applications  - Eric Shupps
O365Con18 - Introduction to Azure Web Applications - Eric Shupps
NCCOMMS
 
App Model For SharePoint 2013
App Model For SharePoint 2013App Model For SharePoint 2013
App Model For SharePoint 2013
Toni Il Caiser
 
Eventbus Library and How Does it Work?
Eventbus Library and How Does it Work?Eventbus Library and How Does it Work?
Eventbus Library and How Does it Work?
InnovationM
 

Viewers also liked (20)

Matematika
MatematikaMatematika
Matematika
desydaulay
 
Retail digital signage merchandising applications
Retail digital signage merchandising applicationsRetail digital signage merchandising applications
Retail digital signage merchandising applications
Michael Epstein
 
Pizza data - Working with Data
Pizza data - Working with DataPizza data - Working with Data
Pizza data - Working with Data
Prasetyo Andy Wicaksono
 
Киселинен дъжд
Киселинен дъжд Киселинен дъжд
Киселинен дъжд
Cvetelin
 
Araij Trading
Araij TradingAraij Trading
Araij Trading
Araij International
 
Personal Data Protection in Pharmaceutical Sector (webinar presentation)
Personal Data Protection in Pharmaceutical Sector (webinar presentation)Personal Data Protection in Pharmaceutical Sector (webinar presentation)
Personal Data Protection in Pharmaceutical Sector (webinar presentation)
Anastasiya Lemysh
 
Trademark opposition procedure to be introduced in Ukraine
Trademark opposition procedure to be introduced in UkraineTrademark opposition procedure to be introduced in Ukraine
Trademark opposition procedure to be introduced in Ukraine
Anastasiya Lemysh
 
Presentation on Personal Data Protection in Russia at Moscow Times Conference
Presentation on Personal Data Protection in Russia at Moscow Times ConferencePresentation on Personal Data Protection in Russia at Moscow Times Conference
Presentation on Personal Data Protection in Russia at Moscow Times Conference
Anastasiya Lemysh
 
Torre de Babel / Meteora
Torre de Babel / MeteoraTorre de Babel / Meteora
Torre de Babel / Meteora
Ana Hermida
 
Palm desert toyota
Palm desert toyotaPalm desert toyota
Palm desert toyota
I10 Auto Mall
 
Español 3 grammar notebook
Español 3 grammar notebookEspañol 3 grammar notebook
Español 3 grammar notebook
christophercarpentier
 
Intelligent Design En Rev1(2)
Intelligent  Design En Rev1(2)Intelligent  Design En Rev1(2)
Intelligent Design En Rev1(2)
Alfie John Balquin
 
Beginner's guide to self promotion final
Beginner's guide to self promotion finalBeginner's guide to self promotion final
Beginner's guide to self promotion final
ruthrewired
 
Etr400 fta lt
Etr400 fta ltEtr400 fta lt
Etr400 fta lt
sseputiene
 
Tulpės
TulpėsTulpės
Tulpės
sseputiene
 
horoskopas
horoskopashoroskopas
horoskopas
sseputiene
 
The Open Web & The Broken TVs
The Open Web & The Broken TVsThe Open Web & The Broken TVs
The Open Web & The Broken TVs
lomalogue
 
Retail digital signage merchandising applications
Retail digital signage merchandising applicationsRetail digital signage merchandising applications
Retail digital signage merchandising applications
Michael Epstein
 
Киселинен дъжд
Киселинен дъжд Киселинен дъжд
Киселинен дъжд
Cvetelin
 
Personal Data Protection in Pharmaceutical Sector (webinar presentation)
Personal Data Protection in Pharmaceutical Sector (webinar presentation)Personal Data Protection in Pharmaceutical Sector (webinar presentation)
Personal Data Protection in Pharmaceutical Sector (webinar presentation)
Anastasiya Lemysh
 
Trademark opposition procedure to be introduced in Ukraine
Trademark opposition procedure to be introduced in UkraineTrademark opposition procedure to be introduced in Ukraine
Trademark opposition procedure to be introduced in Ukraine
Anastasiya Lemysh
 
Presentation on Personal Data Protection in Russia at Moscow Times Conference
Presentation on Personal Data Protection in Russia at Moscow Times ConferencePresentation on Personal Data Protection in Russia at Moscow Times Conference
Presentation on Personal Data Protection in Russia at Moscow Times Conference
Anastasiya Lemysh
 
Torre de Babel / Meteora
Torre de Babel / MeteoraTorre de Babel / Meteora
Torre de Babel / Meteora
Ana Hermida
 
Beginner's guide to self promotion final
Beginner's guide to self promotion finalBeginner's guide to self promotion final
Beginner's guide to self promotion final
ruthrewired
 
The Open Web & The Broken TVs
The Open Web & The Broken TVsThe Open Web & The Broken TVs
The Open Web & The Broken TVs
lomalogue
 
Ad

Similar to Introduction to Google Apps Platform (20)

Varaprasad-Go
Varaprasad-GoVaraprasad-Go
Varaprasad-Go
Varaprasad Pemmasani
 
Cloud computing overview & Technical intro to Google Cloud
Cloud computing overview & Technical intro to Google CloudCloud computing overview & Technical intro to Google Cloud
Cloud computing overview & Technical intro to Google Cloud
wesley chun
 
Microsoft graph and power platform champ
Microsoft graph and power platform   champMicrosoft graph and power platform   champ
Microsoft graph and power platform champ
Kumton Suttiraksiri
 
Google Apps Script the Authentic{ated} Mobile Playground
Google Apps Script the Authentic{ated} Mobile PlaygroundGoogle Apps Script the Authentic{ated} Mobile Playground
Google Apps Script the Authentic{ated} Mobile Playground
Martin Hawksey
 
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
 
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
 
300 - Multiplatform Apps on Google Cloud Platform
300 - Multiplatform Apps on Google Cloud Platform300 - Multiplatform Apps on Google Cloud Platform
300 - Multiplatform Apps on Google Cloud Platform
MobileMonday Tel-Aviv
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Python
wesley chun
 
Google Technical Webinar - Building Mashups with Google Apps and SAP, using S...
Google Technical Webinar - Building Mashups with Google Apps and SAP, using S...Google Technical Webinar - Building Mashups with Google Apps and SAP, using S...
Google Technical Webinar - Building Mashups with Google Apps and SAP, using S...
SAP PartnerEdge program for Application Development
 
The Big Picture and How to Get Started
The Big Picture and How to Get StartedThe Big Picture and How to Get Started
The Big Picture and How to Get Started
guest1af57e
 
Accessing Google Cloud APIs
Accessing Google Cloud APIsAccessing Google Cloud APIs
Accessing Google Cloud APIs
wesley chun
 
Build with ALL of Google Cloud
Build with ALL of Google CloudBuild with ALL of Google Cloud
Build with ALL of Google Cloud
wesley chun
 
From zero to Google APIs: Beyond search & AI... leverage all of Google
From zero to Google APIs: Beyond search & AI... leverage all of GoogleFrom zero to Google APIs: Beyond search & AI... leverage all of Google
From zero to Google APIs: Beyond search & AI... leverage all of Google
wesley chun
 
Exploring Google (Cloud) APIs & Cloud Computing overview
Exploring Google (Cloud) APIs & Cloud Computing overviewExploring Google (Cloud) APIs & Cloud Computing overview
Exploring Google (Cloud) APIs & Cloud Computing overview
wesley chun
 
Exploring Google APIs 102: Cloud vs. non-GCP Google APIs
Exploring Google APIs 102: Cloud vs. non-GCP Google APIsExploring Google APIs 102: Cloud vs. non-GCP Google APIs
Exploring Google APIs 102: Cloud vs. non-GCP Google APIs
wesley chun
 
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
 
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
 
SSO with Social Login Integration & FastAPI Simplified
SSO with Social Login Integration & FastAPI SimplifiedSSO with Social Login Integration & FastAPI Simplified
SSO with Social Login Integration & FastAPI Simplified
techprane
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
Software Park Thailand
 
Cloud computing overview & Technical intro to Google Cloud
Cloud computing overview & Technical intro to Google CloudCloud computing overview & Technical intro to Google Cloud
Cloud computing overview & Technical intro to Google Cloud
wesley chun
 
Microsoft graph and power platform champ
Microsoft graph and power platform   champMicrosoft graph and power platform   champ
Microsoft graph and power platform champ
Kumton Suttiraksiri
 
Google Apps Script the Authentic{ated} Mobile Playground
Google Apps Script the Authentic{ated} Mobile PlaygroundGoogle Apps Script the Authentic{ated} Mobile Playground
Google Apps Script the Authentic{ated} Mobile Playground
Martin Hawksey
 
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
 
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
 
300 - Multiplatform Apps on Google Cloud Platform
300 - Multiplatform Apps on Google Cloud Platform300 - Multiplatform Apps on Google Cloud Platform
300 - Multiplatform Apps on Google Cloud Platform
MobileMonday Tel-Aviv
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Python
wesley chun
 
The Big Picture and How to Get Started
The Big Picture and How to Get StartedThe Big Picture and How to Get Started
The Big Picture and How to Get Started
guest1af57e
 
Accessing Google Cloud APIs
Accessing Google Cloud APIsAccessing Google Cloud APIs
Accessing Google Cloud APIs
wesley chun
 
Build with ALL of Google Cloud
Build with ALL of Google CloudBuild with ALL of Google Cloud
Build with ALL of Google Cloud
wesley chun
 
From zero to Google APIs: Beyond search & AI... leverage all of Google
From zero to Google APIs: Beyond search & AI... leverage all of GoogleFrom zero to Google APIs: Beyond search & AI... leverage all of Google
From zero to Google APIs: Beyond search & AI... leverage all of Google
wesley chun
 
Exploring Google (Cloud) APIs & Cloud Computing overview
Exploring Google (Cloud) APIs & Cloud Computing overviewExploring Google (Cloud) APIs & Cloud Computing overview
Exploring Google (Cloud) APIs & Cloud Computing overview
wesley chun
 
Exploring Google APIs 102: Cloud vs. non-GCP Google APIs
Exploring Google APIs 102: Cloud vs. non-GCP Google APIsExploring Google APIs 102: Cloud vs. non-GCP Google APIs
Exploring Google APIs 102: Cloud vs. non-GCP Google APIs
wesley chun
 
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
 
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
 
SSO with Social Login Integration & FastAPI Simplified
SSO with Social Login Integration & FastAPI SimplifiedSSO with Social Login Integration & FastAPI Simplified
SSO with Social Login Integration & FastAPI Simplified
techprane
 
Ad

Recently uploaded (20)

pulse ppt.pptx Types of pulse , characteristics of pulse , Alteration of pulse
pulse  ppt.pptx Types of pulse , characteristics of pulse , Alteration of pulsepulse  ppt.pptx Types of pulse , characteristics of pulse , Alteration of pulse
pulse ppt.pptx Types of pulse , characteristics of pulse , Alteration of pulse
sushreesangita003
 
How to Subscribe Newsletter From Odoo 18 Website
How to Subscribe Newsletter From Odoo 18 WebsiteHow to Subscribe Newsletter From Odoo 18 Website
How to Subscribe Newsletter From Odoo 18 Website
Celine George
 
How to Manage Opening & Closing Controls in Odoo 17 POS
How to Manage Opening & Closing Controls in Odoo 17 POSHow to Manage Opening & Closing Controls in Odoo 17 POS
How to Manage Opening & Closing Controls in Odoo 17 POS
Celine George
 
Quality Contril Analysis of Containers.pdf
Quality Contril Analysis of Containers.pdfQuality Contril Analysis of Containers.pdf
Quality Contril Analysis of Containers.pdf
Dr. Bindiya Chauhan
 
How to Customize Your Financial Reports & Tax Reports With Odoo 17 Accounting
How to Customize Your Financial Reports & Tax Reports With Odoo 17 AccountingHow to Customize Your Financial Reports & Tax Reports With Odoo 17 Accounting
How to Customize Your Financial Reports & Tax Reports With Odoo 17 Accounting
Celine George
 
apa-style-referencing-visual-guide-2025.pdf
apa-style-referencing-visual-guide-2025.pdfapa-style-referencing-visual-guide-2025.pdf
apa-style-referencing-visual-guide-2025.pdf
Ishika Ghosh
 
Political History of Pala dynasty Pala Rulers NEP.pptx
Political History of Pala dynasty Pala Rulers NEP.pptxPolitical History of Pala dynasty Pala Rulers NEP.pptx
Political History of Pala dynasty Pala Rulers NEP.pptx
Arya Mahila P. G. College, Banaras Hindu University, Varanasi, India.
 
LDMMIA Reiki Master Spring 2025 Mini Updates
LDMMIA Reiki Master Spring 2025 Mini UpdatesLDMMIA Reiki Master Spring 2025 Mini Updates
LDMMIA Reiki Master Spring 2025 Mini Updates
LDM Mia eStudios
 
K12 Tableau Tuesday - Algebra Equity and Access in Atlanta Public Schools
K12 Tableau Tuesday  - Algebra Equity and Access in Atlanta Public SchoolsK12 Tableau Tuesday  - Algebra Equity and Access in Atlanta Public Schools
K12 Tableau Tuesday - Algebra Equity and Access in Atlanta Public Schools
dogden2
 
New Microsoft PowerPoint Presentation.pptx
New Microsoft PowerPoint Presentation.pptxNew Microsoft PowerPoint Presentation.pptx
New Microsoft PowerPoint Presentation.pptx
milanasargsyan5
 
How to Set warnings for invoicing specific customers in odoo
How to Set warnings for invoicing specific customers in odooHow to Set warnings for invoicing specific customers in odoo
How to Set warnings for invoicing specific customers in odoo
Celine George
 
Phoenix – A Collaborative Renewal of Children’s and Young People’s Services C...
Phoenix – A Collaborative Renewal of Children’s and Young People’s Services C...Phoenix – A Collaborative Renewal of Children’s and Young People’s Services C...
Phoenix – A Collaborative Renewal of Children’s and Young People’s Services C...
Library Association of Ireland
 
YSPH VMOC Special Report - Measles Outbreak Southwest US 4-30-2025.pptx
YSPH VMOC Special Report - Measles Outbreak  Southwest US 4-30-2025.pptxYSPH VMOC Special Report - Measles Outbreak  Southwest US 4-30-2025.pptx
YSPH VMOC Special Report - Measles Outbreak Southwest US 4-30-2025.pptx
Yale School of Public Health - The Virtual Medical Operations Center (VMOC)
 
GDGLSPGCOER - Git and GitHub Workshop.pptx
GDGLSPGCOER - Git and GitHub Workshop.pptxGDGLSPGCOER - Git and GitHub Workshop.pptx
GDGLSPGCOER - Git and GitHub Workshop.pptx
azeenhodekar
 
Presentation on Tourism Product Development By Md Shaifullar Rabbi
Presentation on Tourism Product Development By Md Shaifullar RabbiPresentation on Tourism Product Development By Md Shaifullar Rabbi
Presentation on Tourism Product Development By Md Shaifullar Rabbi
Md Shaifullar Rabbi
 
Introduction to Vibe Coding and Vibe Engineering
Introduction to Vibe Coding and Vibe EngineeringIntroduction to Vibe Coding and Vibe Engineering
Introduction to Vibe Coding and Vibe Engineering
Damian T. Gordon
 
Marie Boran Special Collections Librarian Hardiman Library, University of Gal...
Marie Boran Special Collections Librarian Hardiman Library, University of Gal...Marie Boran Special Collections Librarian Hardiman Library, University of Gal...
Marie Boran Special Collections Librarian Hardiman Library, University of Gal...
Library Association of Ireland
 
Exploring-Substances-Acidic-Basic-and-Neutral.pdf
Exploring-Substances-Acidic-Basic-and-Neutral.pdfExploring-Substances-Acidic-Basic-and-Neutral.pdf
Exploring-Substances-Acidic-Basic-and-Neutral.pdf
Sandeep Swamy
 
How to track Cost and Revenue using Analytic Accounts in odoo Accounting, App...
How to track Cost and Revenue using Analytic Accounts in odoo Accounting, App...How to track Cost and Revenue using Analytic Accounts in odoo Accounting, App...
How to track Cost and Revenue using Analytic Accounts in odoo Accounting, App...
Celine George
 
Multi-currency in odoo accounting and Update exchange rates automatically in ...
Multi-currency in odoo accounting and Update exchange rates automatically in ...Multi-currency in odoo accounting and Update exchange rates automatically in ...
Multi-currency in odoo accounting and Update exchange rates automatically in ...
Celine George
 
pulse ppt.pptx Types of pulse , characteristics of pulse , Alteration of pulse
pulse  ppt.pptx Types of pulse , characteristics of pulse , Alteration of pulsepulse  ppt.pptx Types of pulse , characteristics of pulse , Alteration of pulse
pulse ppt.pptx Types of pulse , characteristics of pulse , Alteration of pulse
sushreesangita003
 
How to Subscribe Newsletter From Odoo 18 Website
How to Subscribe Newsletter From Odoo 18 WebsiteHow to Subscribe Newsletter From Odoo 18 Website
How to Subscribe Newsletter From Odoo 18 Website
Celine George
 
How to Manage Opening & Closing Controls in Odoo 17 POS
How to Manage Opening & Closing Controls in Odoo 17 POSHow to Manage Opening & Closing Controls in Odoo 17 POS
How to Manage Opening & Closing Controls in Odoo 17 POS
Celine George
 
Quality Contril Analysis of Containers.pdf
Quality Contril Analysis of Containers.pdfQuality Contril Analysis of Containers.pdf
Quality Contril Analysis of Containers.pdf
Dr. Bindiya Chauhan
 
How to Customize Your Financial Reports & Tax Reports With Odoo 17 Accounting
How to Customize Your Financial Reports & Tax Reports With Odoo 17 AccountingHow to Customize Your Financial Reports & Tax Reports With Odoo 17 Accounting
How to Customize Your Financial Reports & Tax Reports With Odoo 17 Accounting
Celine George
 
apa-style-referencing-visual-guide-2025.pdf
apa-style-referencing-visual-guide-2025.pdfapa-style-referencing-visual-guide-2025.pdf
apa-style-referencing-visual-guide-2025.pdf
Ishika Ghosh
 
LDMMIA Reiki Master Spring 2025 Mini Updates
LDMMIA Reiki Master Spring 2025 Mini UpdatesLDMMIA Reiki Master Spring 2025 Mini Updates
LDMMIA Reiki Master Spring 2025 Mini Updates
LDM Mia eStudios
 
K12 Tableau Tuesday - Algebra Equity and Access in Atlanta Public Schools
K12 Tableau Tuesday  - Algebra Equity and Access in Atlanta Public SchoolsK12 Tableau Tuesday  - Algebra Equity and Access in Atlanta Public Schools
K12 Tableau Tuesday - Algebra Equity and Access in Atlanta Public Schools
dogden2
 
New Microsoft PowerPoint Presentation.pptx
New Microsoft PowerPoint Presentation.pptxNew Microsoft PowerPoint Presentation.pptx
New Microsoft PowerPoint Presentation.pptx
milanasargsyan5
 
How to Set warnings for invoicing specific customers in odoo
How to Set warnings for invoicing specific customers in odooHow to Set warnings for invoicing specific customers in odoo
How to Set warnings for invoicing specific customers in odoo
Celine George
 
Phoenix – A Collaborative Renewal of Children’s and Young People’s Services C...
Phoenix – A Collaborative Renewal of Children’s and Young People’s Services C...Phoenix – A Collaborative Renewal of Children’s and Young People’s Services C...
Phoenix – A Collaborative Renewal of Children’s and Young People’s Services C...
Library Association of Ireland
 
GDGLSPGCOER - Git and GitHub Workshop.pptx
GDGLSPGCOER - Git and GitHub Workshop.pptxGDGLSPGCOER - Git and GitHub Workshop.pptx
GDGLSPGCOER - Git and GitHub Workshop.pptx
azeenhodekar
 
Presentation on Tourism Product Development By Md Shaifullar Rabbi
Presentation on Tourism Product Development By Md Shaifullar RabbiPresentation on Tourism Product Development By Md Shaifullar Rabbi
Presentation on Tourism Product Development By Md Shaifullar Rabbi
Md Shaifullar Rabbi
 
Introduction to Vibe Coding and Vibe Engineering
Introduction to Vibe Coding and Vibe EngineeringIntroduction to Vibe Coding and Vibe Engineering
Introduction to Vibe Coding and Vibe Engineering
Damian T. Gordon
 
Marie Boran Special Collections Librarian Hardiman Library, University of Gal...
Marie Boran Special Collections Librarian Hardiman Library, University of Gal...Marie Boran Special Collections Librarian Hardiman Library, University of Gal...
Marie Boran Special Collections Librarian Hardiman Library, University of Gal...
Library Association of Ireland
 
Exploring-Substances-Acidic-Basic-and-Neutral.pdf
Exploring-Substances-Acidic-Basic-and-Neutral.pdfExploring-Substances-Acidic-Basic-and-Neutral.pdf
Exploring-Substances-Acidic-Basic-and-Neutral.pdf
Sandeep Swamy
 
How to track Cost and Revenue using Analytic Accounts in odoo Accounting, App...
How to track Cost and Revenue using Analytic Accounts in odoo Accounting, App...How to track Cost and Revenue using Analytic Accounts in odoo Accounting, App...
How to track Cost and Revenue using Analytic Accounts in odoo Accounting, App...
Celine George
 
Multi-currency in odoo accounting and Update exchange rates automatically in ...
Multi-currency in odoo accounting and Update exchange rates automatically in ...Multi-currency in odoo accounting and Update exchange rates automatically in ...
Multi-currency in odoo accounting and Update exchange rates automatically in ...
Celine George
 

Introduction to Google Apps Platform

  • 1. Introduction to Google Apps Platform Prasetyo Andy W. @praw
  • 3. What are we talking about?
  • 4. Google Apps Platform Apps Script Application APIs Domain Admin APIs Auth APIs
  • 5. What is Google Apps Script?
  • 6. Apps Script JavaScript cloud scripting language Automate tasks across Google products and 3rd party services
  • 7. What you can do with it? Automate repetitive processes and workflows Link Google products with third party services Create custom spreadsheet functions Build rich GUI and menus
  • 8. Development Environment Browser No client libraries needed to install and server to maintain Direct access http://script.google.com
  • 9. Prerequisites Google Account Supported web browser Basic understanding of JavaScript
  • 10. Google Apps Script Security Model Grant access needed to any scripts you run that accesses private data Script permission level and access Standalone scripts Container-bound scripts Container owner Container editor Container viewer
  • 11. Building your first script We will create standalone script There are two ways to create a new standalone script: From Google Drive, choose Create > More > Script Go to https://script.google.com
  • 12. Building your first script Let’s try to create a simple one: create a new Google Docs email you a link to the newly created document
  • 14. Executing a script Script editor Custom function in a spreadsheet Web app Gadget in Google sites Container extension Time-driven trigger Container-specific trigger
  • 15. Executing a script click Run icon or choose Run > createAndSendDocument from the menu
  • 16. More about Apps Script Tutorials: https://developers.google.com/apps-script/ articles
  • 17. Building user interfaces HTML Service UI Service GUI Builder
  • 18. Storing data Script and user properties ScriptDb Spreadsheets JDBC
  • 19. Events and Triggers Events: action that happens when the state of an object changes Clock tick events Script installation events Spreadsheet open events Spreadsheet edit events Spreadsheet form submit events
  • 20. Events and Triggers Trigger: type of script resource that listens to a particular event and executes a function when that event fires
  • 21. Now, let’s talk about Application API
  • 22. Application API Allow developers to write applications that access Google Applications: Gmail, Calendar, and many others using Google Data APIs, Gadgets and Google Apps Script Based on JSON and Atom and RSS syndication formats and the Atom publishing protocol
  • 23. Application APIs Calendar API Tasks API Gmail API Contacts API Document List API Spreadsheet API Site API
  • 24. Prerequisites Get a Google Account Try out Google apps (Calendar, Contacts, Docs, etc) Register your project, visit APIs Console (https:// code.google.com/apis/console) Learn about REST Learn about JSON data format
  • 25. Invoke the API Using REST directly Using client libraries
  • 27. Client Library Client library is available for: Java PHP Python .NET Ruby
  • 28. Calendar API Lets you develop client applications that create new events, edit or delete existing events, and search for events Integrates your apps with Google Calendar, suits for apps that need to display Calendar and synchronizes it with Google Calendar Uses JSON starting on v3
  • 29. Tasks API provides developers with a powerful set of API endpoints for searching, reading, and updating Google Tasks content and metadata Various integration projects with web apps or other Google APIs, use Google Task API to manage Google task lists in a mobile app
  • 30. Gmail API Help you and your users interact with, configure, and extend Gmail Some possibilities: Gadgets OAuth Access to IMAP or SMTP IMAP Extension Gmail Inbox Feed Email Migration API Email Settings API
  • 31. Contacts API Allows client applications to create, edit or delete user’s contacts Supports protocol (via curl or wget), Java, .NET and Python
  • 32. Document List API Allows developer to create, retrieve, update and delete Google Docs Included advanced features like resource archives, OCR (Optical Character Recognition), translation and revision history Useful for storing data in the cloud, perform resource management, convert document formats, etc
  • 33. Spreadsheets API Managing worksheets in a Google spreadsheet Consuming the rows of a worksheet Managing cells in a worksheet by position
  • 34. Spreadsheets API Common examples: Computing financial data stored in an inaccessible system Presenting statistics to users in a web browser Consuming data entered into a spreadsheet by a user
  • 35. Sites API Allows client applications to access, publish, and modify content within a Google Site Access and modify Google Site data using Google Data API feeds
  • 36. You can do it all, if we implement Auth APIs
  • 37. Auth API Allows third-party applications to get limited access to a user’s Google accounts for certain types of activities
  • 38. Auth API OAuth 2.0 OAuth 1.0 Hybrid Protocol OpenID
  • 39. OAuth 2.0 Used for authentication and authorization Relatively simple
  • 40. OAuth 2.0 Four steps of accessing Google API using OAuth 2.0: 1. Register application 2. Obtain an access token from the Google Authorization Server 3. Send the Access Token 4. Refresh the Access Token
  • 41. OAuth 2.0 scenarios Login Web server Client-side Installed apps Devices Services accounts
  • 43. Okay, let’s move on and talk about Domain Admin API
  • 44. Domain Admin APIs Allows developers to write applications to manage Google Apps domains Migrate from and integrate with existing IT infrastructure, create users, update settings, audit activity and more Based on JSON for Admin Audit API and Groups Settings API, others are based on RSS syndication formats
  • 45. Domain Admin API Audit API Email Migration API Admin Audit API Email Settings API Email Audit API Groups Settings API Admin Settings API Provisioning API Calendar Resource API Reporting API Shared Contacts API User Profiles API

Editor's Notes

  • #2: \n
  • #3: \n
  • #4: \n
  • #5: \n
  • #6: \n
  • #7: \n
  • #8: \n
  • #9: \n
  • #10: \n
  • #11: \n
  • #12: \n
  • #13: \n
  • #14: \n
  • #15: \n
  • #16: \n
  • #17: \n
  • #18: \n
  • #19: script properties:\n- key-value pairs yg disimpan oleh script pad suatu persistent store\n- key-value pairs yang unik berdasarkan user\nScriptDB:\n- js object database for GApps\n
  • #20: \n
  • #21: \n
  • #22: \n
  • #23: \n
  • #24: \n
  • #25: \n
  • #26: \n
  • #27: \n
  • #28: \n
  • #29: \n
  • #30: \n
  • #31: gadgets:\n- sidebar gadgets: small, portable web app that live in the lef-hand side of the Gmail UI\n- contextual gadgets: applications displayed at the bottom of individual email messages and are triggered by contextual clues\n\n
  • #32: contact entry\nretrieving all contacts\nretrieving contacts using query parameters\nretrieving a single contact\ncreating contacts\ncontact photo management\n
  • #33: \n
  • #34: \n
  • #35: \n
  • #36: \n
  • #37: \n
  • #38: \n
  • #39: \n
  • #40: \n
  • #41: \n
  • #42: \n
  • #43: code or token\nthe client_id obtained from the API Console\none of your redirect_uri registered\nspace delimited set o permissions the app req\nany string\n
  • #44: \n
  • #45: \n
  • #46: \n
  • #47: \n
  • #48: \n
  • #49: \n
  • #50: \n
  • #51: \n