SlideShare a Scribd company logo
Google Apps Script
    Introduction
      01-17-2013


                   ModMonstR.com
What is Google Apps Script?
● A Google Cloud-based scripting technology
  used in the Google Apps/Drive ecosystem
● Write code in JavaScript and HTML
● Has native APIs to most Google services,
  except Google+, Blogger, and YouTube
● Has Web Service support
● Has App Engine integration support
Script Execution
● Invocation Methods:
  ○ Google Drive
  ○ Google Spreadsheet
  ○ Web (Sites or Web App)
● Scheduling Capabilities
  ○ By Specific Times
  ○ By Time Interval
● Quotas
  ○ Goes against the executor's Google Account
Container-Bound vs Standalone
● Container-Bound scripts
  ○ Resides within a Google Spreadsheet
  ○ Goes away with the spreadsheet
● Standalone scripts
  ○ Resides in Google Drive
  ○ Can be scheduled to execute
  ○ As a Web App, it can be deployed to the Chrome
    App Store
Google API Support
Default and Experimental Google APIs
Default Google APIs
●   Blob       ●   Finance      ●   Script
●   Browser    ●   Gmail        ●   ScriptDb
●   Buttons    ●   Groups       ●   Sites
●   Cache      ●   Html         ●   Soap
●   Calendar   ●   Jdbc         ●   Spreadsheet
●   Charts     ●   Language     ●   Ui
●   Contacts   ●   Lock         ●   UrlFetch
●   Content    ●   Logger       ●   Utilities
●   DocList    ●   Mail         ●   Xml
●   Document   ●   Maps
●   Domain     ●   Properties
Experimental Google APIs
These APIs need to be enabled by going to the
Resources>Use Google APIs menu
●   AdSense
●   Analytics
●   BigQuery
●   Prediction
●   Tasks
●   UrlShortener
Sample
Good Morning World
About Good Morning World
1.   Gathers Calendar events for the current day
2.   Write them in a Google Document
3.   Shorten the URL of the Document via goo.gl
4.   Email the shortened URL
5.   Schedule the script
Create the Script
1.      Go to Google Drive
2.      Click Create>More>Script
3.      Click Blank Project
4.      Rename Untitled project to your
        project's name    1


2
                                    3




    2
               2                   4
Initialize
function myFunction() {
  //Get current Date and format as a string
  var today = new Date();
  var todayString = today.getFullYear().toString() + lPad
(1+today.getMonth())+lPad(today.getDate());
}
function lPad(i){
  return i<10?"0"+i:i;
}

● The current date is obtained and saved as a
  string in yyyymmdd format for file naming
● The lPad function pads a zero to the left if
  the input is a single-digit number
Step 1. Gather Today's Calendar Events
 var cal = CalendarApp.
 getDefaultCalendar().
 getEventsForDay(today);
 ● CalendarApp is used to reference the end-
   user's Calendar
 ● getDefaultCalendar() obtains the end-
   user's default calendar
 ● getEventsForDay(Date) obtains all
   events for the specified date
 ● today is the current date from previous slide
Step 2. Write them in a Document
//Create a Google Document,
//filename starts with the current date
var doc = DocumentApp.create(todayString+'-Good Morning');

● Create the Google Document
● The filename begins with the current date in
  yyyymmdd format
● Doing so enables the Document filenames to
  sort naturally
Step 2. Write them in a Document
//Header part of the document
doc.appendParagraph("Good Morning World");
doc.appendParagraph("Below are the activities for today, "
+ today);
doc.appendHorizontalRule()

● The header is composed of three parts:
   ○ A greeting
   ○ Language to indicate today's events
   ○ A horizontal rule to delineate the Calendar Events
     from the header
Step 2. Write them in a Document
//Iterate through the Calendar and write to the Document
var i = 0;
for(i = 0;i<cal.length;i++){
  doc.appendParagraph(basicTime(cal[i].getStartTime()) + '
to ' + basicTime(cal[i].getEndTime()) + ' - ' + cal[i].
getTitle() + ' in ' + cal[i].getLocation());
}

● The Calendar events are stored as an array
  of CalendarEvent objects
● Iterate via a for loop
● Inside, add a paragraph to the Document
  with the time range, title, and location of the
  event
Step 2. Write them in a Document
function basicTime(t){
  var output = lPad(t.getHours()) + ":" +
lPad(t.getMinutes());
  return output;
}
● basicTime formats the input time in hh:mm
  format
● This function is called in the previous slide to
  format the Start and End time of the
  calendar event
Step 2. Write them in a Document
//Save and close the Document
doc.saveAndClose();
● We are done with the Google Document
● Save changes and Close it
Step 3. Shorten Document URL
// Get the URL of the document
var url = doc.getUrl();
// Shorten the URL
var toShorten = UrlShortener.newUrl().setLongUrl(url)
var shortUrl = UrlShortener.Url.insert(toShorten);

● getUrl() gets the Document's URL
● toShorten gets a url object by converting
  from getUrl's output (string)
● shortUrl contains the shortened Url
Step 4. Email the shortened URL
// Get the email address of the active user - that's you
var emailAddress = Session.getActiveUser().getEmail();
// Send yourself an email with a link to the document
GmailApp.sendEmail(emailAddress,
       'Today's Calendar Events',
       'Attached is a link to Document containing ' +
       'today's activities ' +
       shortUrl.getId());

● emailAddress contains the end-user's
  email address
● sendEmail sends the email
● the ' results in a ' character
Step 4. Email the shortened URL
● We need to enable the URL Shortener API
● Click Resources
● Click User Google APIs...
Step 4. Email the shortened URL
1. Set URL Shortener API to on
2. Click OK




                                 1




    2
Step 5. Schedule
1. Go to Resources
2. Click Current script's triggers...
       1


        2
Step 5. Schedule
1. Click No triggers set up. Click
   here to add one now.



        1
Step 5. Schedule
● Run - Pick the main function in the script
● Events - Configure the scheduling
● Click Save
Step 5. Schedule
● Authorization is similar to Android apps
● Each Google service accessed by the script
  is listed in the authorization request
Step 5. Schedule
● Click Grant access
Step 5. Schedule
● Confirmation of authorization
To Run
1. Select the goodMorningWorld function
2. Click on the play button to run


         2         1
Output
● Email sent containing the shortened URL
Output
● Google Document generated by the script
Resources
● This Presentation:
  ○ http://goo.gl/2dGhW
● Sample Source Code:
  ○ http://www.modmonstr.com/search/label/Apps%20Script
● Google
  ○ http://script.google.com
  ○ https://developers.google.com/apps-script/articles
  ○ https://developers.google.com/apps-script/videos
● Stack Overflow
  ○ http://stackoverflow.com/questions/tagged/google-apps-
    script
Next Time
● Container-bound Apps Script
● Web App
● Chrome Web Store deployment

More Related Content

What's hot

Google cloud datastore driver for Google Apps Script DB abstraction
Google cloud datastore driver for Google Apps Script DB abstractionGoogle cloud datastore driver for Google Apps Script DB abstraction
Google cloud datastore driver for Google Apps Script DB abstraction
Bruce McPherson
 
Code Management
Code ManagementCode Management
Code Management
Y. Thong Kuah
 
A Beginner's Guide to Building Data Pipelines with Luigi
A Beginner's Guide to Building Data Pipelines with LuigiA Beginner's Guide to Building Data Pipelines with Luigi
A Beginner's Guide to Building Data Pipelines with Luigi
Growth Intelligence
 
How to make GAE adapt the Great Firewall
How to make GAE adapt the Great FirewallHow to make GAE adapt the Great Firewall
How to make GAE adapt the Great Firewall
Hayato Yoshikawa
 
Altitude San Francisco 2018: Logging at the Edge
Altitude San Francisco 2018: Logging at the Edge Altitude San Francisco 2018: Logging at the Edge
Altitude San Francisco 2018: Logging at the Edge
Fastly
 
Understanding angular meteor
Understanding angular meteorUnderstanding angular meteor
Understanding angular meteor
Entrepreneur / Startup
 
Why Grails?
Why Grails?Why Grails?
Why Grails?
Yiguang Hu
 
MongoDB Aggregation
MongoDB Aggregation MongoDB Aggregation
MongoDB Aggregation
Amit Ghosh
 
Learning Svelte
Learning SvelteLearning Svelte
Learning Svelte
Christoffer Noring
 
MongoDB - Aggregation Pipeline
MongoDB - Aggregation PipelineMongoDB - Aggregation Pipeline
MongoDB - Aggregation Pipeline
Jason Terpko
 
GraphQL - an elegant weapon... for more civilized age
GraphQL - an elegant weapon... for more civilized ageGraphQL - an elegant weapon... for more civilized age
GraphQL - an elegant weapon... for more civilized age
Bartosz Sypytkowski
 
Aggregation Framework in MongoDB Overview Part-1
Aggregation Framework in MongoDB Overview Part-1Aggregation Framework in MongoDB Overview Part-1
Aggregation Framework in MongoDB Overview Part-1
Anuj Jain
 
Git as NoSQL
Git as NoSQLGit as NoSQL
Git as NoSQL
Somkiat Puisungnoen
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
Nosh Petigara
 
Aggregation Framework MongoDB Days Munich
Aggregation Framework MongoDB Days MunichAggregation Framework MongoDB Days Munich
Aggregation Framework MongoDB Days Munich
Norberto Leite
 

What's hot (16)

Google cloud datastore driver for Google Apps Script DB abstraction
Google cloud datastore driver for Google Apps Script DB abstractionGoogle cloud datastore driver for Google Apps Script DB abstraction
Google cloud datastore driver for Google Apps Script DB abstraction
 
Code Management
Code ManagementCode Management
Code Management
 
A Beginner's Guide to Building Data Pipelines with Luigi
A Beginner's Guide to Building Data Pipelines with LuigiA Beginner's Guide to Building Data Pipelines with Luigi
A Beginner's Guide to Building Data Pipelines with Luigi
 
How to make GAE adapt the Great Firewall
How to make GAE adapt the Great FirewallHow to make GAE adapt the Great Firewall
How to make GAE adapt the Great Firewall
 
Altitude San Francisco 2018: Logging at the Edge
Altitude San Francisco 2018: Logging at the Edge Altitude San Francisco 2018: Logging at the Edge
Altitude San Francisco 2018: Logging at the Edge
 
Understanding angular meteor
Understanding angular meteorUnderstanding angular meteor
Understanding angular meteor
 
Why Grails?
Why Grails?Why Grails?
Why Grails?
 
MongoDB Aggregation
MongoDB Aggregation MongoDB Aggregation
MongoDB Aggregation
 
Learning Svelte
Learning SvelteLearning Svelte
Learning Svelte
 
MongoDB - Aggregation Pipeline
MongoDB - Aggregation PipelineMongoDB - Aggregation Pipeline
MongoDB - Aggregation Pipeline
 
GraphQL - an elegant weapon... for more civilized age
GraphQL - an elegant weapon... for more civilized ageGraphQL - an elegant weapon... for more civilized age
GraphQL - an elegant weapon... for more civilized age
 
Grails 101
Grails 101Grails 101
Grails 101
 
Aggregation Framework in MongoDB Overview Part-1
Aggregation Framework in MongoDB Overview Part-1Aggregation Framework in MongoDB Overview Part-1
Aggregation Framework in MongoDB Overview Part-1
 
Git as NoSQL
Git as NoSQLGit as NoSQL
Git as NoSQL
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
Aggregation Framework MongoDB Days Munich
Aggregation Framework MongoDB Days MunichAggregation Framework MongoDB Days Munich
Aggregation Framework MongoDB Days Munich
 

Similar to Intro to Google Apps Script

Mooscon 2013 cebit - google integration in android apps (1)
Mooscon 2013   cebit - google integration in android apps (1)Mooscon 2013   cebit - google integration in android apps (1)
Mooscon 2013 cebit - google integration in android apps (1)Heinrich Seeger
 
Accessing Google Cloud APIs
Accessing Google Cloud APIsAccessing Google Cloud APIs
Accessing Google Cloud APIs
wesley chun
 
GAS Session
GAS SessionGAS Session
GAS Session
BVCOE
 
Google Apps Script: Accessing G Suite & other Google services with JavaScript
Google Apps Script: Accessing G Suite & other Google services with JavaScriptGoogle Apps Script: Accessing G Suite & other Google services with JavaScript
Google Apps Script: Accessing G Suite & other Google services with JavaScript
wesley chun
 
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud Run
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud RunDesigning flexible apps deployable to App Engine, Cloud Functions, or Cloud Run
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud Run
wesley chun
 
Google Integration in Android Apps - Mooscon 2013 Cebit
Google Integration in Android Apps - Mooscon 2013 CebitGoogle Integration in Android Apps - Mooscon 2013 Cebit
Google Integration in Android Apps - Mooscon 2013 CebitFriedger Müffke
 
Image archive, analysis & report generation with Google Cloud
Image archive, analysis & report generation with Google CloudImage archive, analysis & report generation with Google Cloud
Image archive, analysis & report generation with Google Cloud
wesley chun
 
What cloud changes the developer
What cloud changes the developerWhat cloud changes the developer
What cloud changes the developer
Simon Su
 
Introduction of Google Tag Manager
Introduction of Google Tag ManagerIntroduction of Google Tag Manager
Introduction of Google Tag Manager
Sean Tsai
 
Google Cloud Platform Special Training
Google Cloud Platform Special TrainingGoogle Cloud Platform Special Training
Google Cloud Platform Special Training
Simon Su
 
Being Productive at Work
Being Productive at WorkBeing Productive at Work
Being Productive at Work
Hitesh Patel
 
Delegating user tasks in applications
Delegating user tasks in applicationsDelegating user tasks in applications
Delegating user tasks in applications
Friedger Müffke
 
2016 stop writing javascript frameworks by Joe Gregorio
2016 stop writing javascript frameworks by Joe Gregorio2016 stop writing javascript frameworks by Joe Gregorio
2016 stop writing javascript frameworks by Joe Gregorio
David Zapateria Besteiro
 
Google... more than just a cloud
Google... more than just a cloudGoogle... more than just a cloud
Google... more than just a cloud
wesley chun
 
Neoito — How modern browsers work
Neoito — How modern browsers workNeoito — How modern browsers work
Neoito — How modern browsers work
Neoito
 
Better Google Drive Client - Project Concept & Plan
Better Google Drive Client - Project Concept & PlanBetter Google Drive Client - Project Concept & Plan
Better Google Drive Client - Project Concept & Plan
인구 강
 
Using Google (Cloud) APIs
Using Google (Cloud) APIsUsing Google (Cloud) APIs
Using Google (Cloud) APIs
wesley chun
 
Introduction to Google Drive API
Introduction to Google Drive APIIntroduction to Google Drive API
Introduction to Google Drive API
Jomar Tigcal
 
OpenCms Days 2014 - User Generated Content in OpenCms 9.5
OpenCms Days 2014 - User Generated Content in OpenCms 9.5OpenCms Days 2014 - User Generated Content in OpenCms 9.5
OpenCms Days 2014 - User Generated Content in OpenCms 9.5
Alkacon Software GmbH & Co. KG
 
Introduction to GCCP - 2022.pptx
Introduction to GCCP - 2022.pptxIntroduction to GCCP - 2022.pptx
Introduction to GCCP - 2022.pptx
RamSamarthBB
 

Similar to Intro to Google Apps Script (20)

Mooscon 2013 cebit - google integration in android apps (1)
Mooscon 2013   cebit - google integration in android apps (1)Mooscon 2013   cebit - google integration in android apps (1)
Mooscon 2013 cebit - google integration in android apps (1)
 
Accessing Google Cloud APIs
Accessing Google Cloud APIsAccessing Google Cloud APIs
Accessing Google Cloud APIs
 
GAS Session
GAS SessionGAS Session
GAS Session
 
Google Apps Script: Accessing G Suite & other Google services with JavaScript
Google Apps Script: Accessing G Suite & other Google services with JavaScriptGoogle Apps Script: Accessing G Suite & other Google services with JavaScript
Google Apps Script: Accessing G Suite & other Google services with JavaScript
 
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud Run
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud RunDesigning flexible apps deployable to App Engine, Cloud Functions, or Cloud Run
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud Run
 
Google Integration in Android Apps - Mooscon 2013 Cebit
Google Integration in Android Apps - Mooscon 2013 CebitGoogle Integration in Android Apps - Mooscon 2013 Cebit
Google Integration in Android Apps - Mooscon 2013 Cebit
 
Image archive, analysis & report generation with Google Cloud
Image archive, analysis & report generation with Google CloudImage archive, analysis & report generation with Google Cloud
Image archive, analysis & report generation with Google Cloud
 
What cloud changes the developer
What cloud changes the developerWhat cloud changes the developer
What cloud changes the developer
 
Introduction of Google Tag Manager
Introduction of Google Tag ManagerIntroduction of Google Tag Manager
Introduction of Google Tag Manager
 
Google Cloud Platform Special Training
Google Cloud Platform Special TrainingGoogle Cloud Platform Special Training
Google Cloud Platform Special Training
 
Being Productive at Work
Being Productive at WorkBeing Productive at Work
Being Productive at Work
 
Delegating user tasks in applications
Delegating user tasks in applicationsDelegating user tasks in applications
Delegating user tasks in applications
 
2016 stop writing javascript frameworks by Joe Gregorio
2016 stop writing javascript frameworks by Joe Gregorio2016 stop writing javascript frameworks by Joe Gregorio
2016 stop writing javascript frameworks by Joe Gregorio
 
Google... more than just a cloud
Google... more than just a cloudGoogle... more than just a cloud
Google... more than just a cloud
 
Neoito — How modern browsers work
Neoito — How modern browsers workNeoito — How modern browsers work
Neoito — How modern browsers work
 
Better Google Drive Client - Project Concept & Plan
Better Google Drive Client - Project Concept & PlanBetter Google Drive Client - Project Concept & Plan
Better Google Drive Client - Project Concept & Plan
 
Using Google (Cloud) APIs
Using Google (Cloud) APIsUsing Google (Cloud) APIs
Using Google (Cloud) APIs
 
Introduction to Google Drive API
Introduction to Google Drive APIIntroduction to Google Drive API
Introduction to Google Drive API
 
OpenCms Days 2014 - User Generated Content in OpenCms 9.5
OpenCms Days 2014 - User Generated Content in OpenCms 9.5OpenCms Days 2014 - User Generated Content in OpenCms 9.5
OpenCms Days 2014 - User Generated Content in OpenCms 9.5
 
Introduction to GCCP - 2022.pptx
Introduction to GCCP - 2022.pptxIntroduction to GCCP - 2022.pptx
Introduction to GCCP - 2022.pptx
 

Intro to Google Apps Script

  • 1. Google Apps Script Introduction 01-17-2013 ModMonstR.com
  • 2. What is Google Apps Script? ● A Google Cloud-based scripting technology used in the Google Apps/Drive ecosystem ● Write code in JavaScript and HTML ● Has native APIs to most Google services, except Google+, Blogger, and YouTube ● Has Web Service support ● Has App Engine integration support
  • 3. Script Execution ● Invocation Methods: ○ Google Drive ○ Google Spreadsheet ○ Web (Sites or Web App) ● Scheduling Capabilities ○ By Specific Times ○ By Time Interval ● Quotas ○ Goes against the executor's Google Account
  • 4. Container-Bound vs Standalone ● Container-Bound scripts ○ Resides within a Google Spreadsheet ○ Goes away with the spreadsheet ● Standalone scripts ○ Resides in Google Drive ○ Can be scheduled to execute ○ As a Web App, it can be deployed to the Chrome App Store
  • 5. Google API Support Default and Experimental Google APIs
  • 6. Default Google APIs ● Blob ● Finance ● Script ● Browser ● Gmail ● ScriptDb ● Buttons ● Groups ● Sites ● Cache ● Html ● Soap ● Calendar ● Jdbc ● Spreadsheet ● Charts ● Language ● Ui ● Contacts ● Lock ● UrlFetch ● Content ● Logger ● Utilities ● DocList ● Mail ● Xml ● Document ● Maps ● Domain ● Properties
  • 7. Experimental Google APIs These APIs need to be enabled by going to the Resources>Use Google APIs menu ● AdSense ● Analytics ● BigQuery ● Prediction ● Tasks ● UrlShortener
  • 9. About Good Morning World 1. Gathers Calendar events for the current day 2. Write them in a Google Document 3. Shorten the URL of the Document via goo.gl 4. Email the shortened URL 5. Schedule the script
  • 10. Create the Script 1. Go to Google Drive 2. Click Create>More>Script 3. Click Blank Project 4. Rename Untitled project to your project's name 1 2 3 2 2 4
  • 11. Initialize function myFunction() { //Get current Date and format as a string var today = new Date(); var todayString = today.getFullYear().toString() + lPad (1+today.getMonth())+lPad(today.getDate()); } function lPad(i){ return i<10?"0"+i:i; } ● The current date is obtained and saved as a string in yyyymmdd format for file naming ● The lPad function pads a zero to the left if the input is a single-digit number
  • 12. Step 1. Gather Today's Calendar Events var cal = CalendarApp. getDefaultCalendar(). getEventsForDay(today); ● CalendarApp is used to reference the end- user's Calendar ● getDefaultCalendar() obtains the end- user's default calendar ● getEventsForDay(Date) obtains all events for the specified date ● today is the current date from previous slide
  • 13. Step 2. Write them in a Document //Create a Google Document, //filename starts with the current date var doc = DocumentApp.create(todayString+'-Good Morning'); ● Create the Google Document ● The filename begins with the current date in yyyymmdd format ● Doing so enables the Document filenames to sort naturally
  • 14. Step 2. Write them in a Document //Header part of the document doc.appendParagraph("Good Morning World"); doc.appendParagraph("Below are the activities for today, " + today); doc.appendHorizontalRule() ● The header is composed of three parts: ○ A greeting ○ Language to indicate today's events ○ A horizontal rule to delineate the Calendar Events from the header
  • 15. Step 2. Write them in a Document //Iterate through the Calendar and write to the Document var i = 0; for(i = 0;i<cal.length;i++){ doc.appendParagraph(basicTime(cal[i].getStartTime()) + ' to ' + basicTime(cal[i].getEndTime()) + ' - ' + cal[i]. getTitle() + ' in ' + cal[i].getLocation()); } ● The Calendar events are stored as an array of CalendarEvent objects ● Iterate via a for loop ● Inside, add a paragraph to the Document with the time range, title, and location of the event
  • 16. Step 2. Write them in a Document function basicTime(t){ var output = lPad(t.getHours()) + ":" + lPad(t.getMinutes()); return output; } ● basicTime formats the input time in hh:mm format ● This function is called in the previous slide to format the Start and End time of the calendar event
  • 17. Step 2. Write them in a Document //Save and close the Document doc.saveAndClose(); ● We are done with the Google Document ● Save changes and Close it
  • 18. Step 3. Shorten Document URL // Get the URL of the document var url = doc.getUrl(); // Shorten the URL var toShorten = UrlShortener.newUrl().setLongUrl(url) var shortUrl = UrlShortener.Url.insert(toShorten); ● getUrl() gets the Document's URL ● toShorten gets a url object by converting from getUrl's output (string) ● shortUrl contains the shortened Url
  • 19. Step 4. Email the shortened URL // Get the email address of the active user - that's you var emailAddress = Session.getActiveUser().getEmail(); // Send yourself an email with a link to the document GmailApp.sendEmail(emailAddress, 'Today's Calendar Events', 'Attached is a link to Document containing ' + 'today's activities ' + shortUrl.getId()); ● emailAddress contains the end-user's email address ● sendEmail sends the email ● the ' results in a ' character
  • 20. Step 4. Email the shortened URL ● We need to enable the URL Shortener API ● Click Resources ● Click User Google APIs...
  • 21. Step 4. Email the shortened URL 1. Set URL Shortener API to on 2. Click OK 1 2
  • 22. Step 5. Schedule 1. Go to Resources 2. Click Current script's triggers... 1 2
  • 23. Step 5. Schedule 1. Click No triggers set up. Click here to add one now. 1
  • 24. Step 5. Schedule ● Run - Pick the main function in the script ● Events - Configure the scheduling ● Click Save
  • 25. Step 5. Schedule ● Authorization is similar to Android apps ● Each Google service accessed by the script is listed in the authorization request
  • 26. Step 5. Schedule ● Click Grant access
  • 27. Step 5. Schedule ● Confirmation of authorization
  • 28. To Run 1. Select the goodMorningWorld function 2. Click on the play button to run 2 1
  • 29. Output ● Email sent containing the shortened URL
  • 30. Output ● Google Document generated by the script
  • 31. Resources ● This Presentation: ○ http://goo.gl/2dGhW ● Sample Source Code: ○ http://www.modmonstr.com/search/label/Apps%20Script ● Google ○ http://script.google.com ○ https://developers.google.com/apps-script/articles ○ https://developers.google.com/apps-script/videos ● Stack Overflow ○ http://stackoverflow.com/questions/tagged/google-apps- script
  • 32. Next Time ● Container-bound Apps Script ● Web App ● Chrome Web Store deployment