How to use the Zoom API to automatically create and schedule Zoom meetings with Google Apps Script
Great little snippet from Amit Agarwal showing how you can interact with the Zoom API using Google Apps Script. This post is also a great example if you are also looking for a code pattern for interacting with APIs using JSON Web Token (JWT). As Amit mentions it’s worth noting that:
We can build Zoom apps with the OAuth2 library as well but since this app is only for internal use and will not be publish to the Zoom marketplace, the JWT approach is easier.
Source: How to Create Zoom Meetings with Google Script – Digital Inspiration
Retrieve the source code linked to a specific version of your Apps Script project then save it as a new Apps Script project – RomainVialard/access-code-of-older-versions
Neat solution from Romain Vialard to retrieve a previous version of your Apps Script code. There is an open feature request to have this as a built-in feature of Apps Script (as noted by Romain recovering a previous script version is also possible using clasp using pull and an optional version number).
This is a sample script for highlighting the row and column of the selected cell using Google Apps Script … and the OnSelectionChange event trigger
Nice little script solution which could be a very useful addition to your script projects as an accessibility feature.
Source: Highlighting Row and Column of Selected Cell using Google Apps Script · tanaike
This is a sample script for disabling the buttons put on Google Spreadsheet using Google Apps Script. When a script is run by clicking a button on Google Spreadsheet, there is the case that you don’t want to make users run the script in duplicate.
Nice little Google Apps Script snippet that prevents a function assigned to an image or drawing in Google Sheets from being run simultaneously. The clever bit is the code uses Google Apps Script to modify the function assigned to the button/image when it is running.
Source: Disabling Buttons Put on Google Spreadsheet using Google Apps Script · tanaike
Apps Script now supports the V8 runtime. Time for an update to the story “Structure and simplify your Google Apps Script Apps script”. The V8 runtime brings modern ECMAScript syntax to Apps Script. So we can now use arrow functions and destructuring assignments. No more hoisting with let and const and my personal favorite, template literals.
In this story Jasper Duizendstra shows the added value of the changes made in the constructor pattern using the factory functions. It also shows how to implement chaining and a builder pattern in Apps Script.
Source: Structure and simplify your Google Apps Script (with) V8
The following code is designed to take a specific option selected on a Google Form and use that to determine where something could be stored. The example it was developed for was Risk Assessments where depending on the type of assessment selected on the Form the generated file was to be saved in a specific Google Drive folder.
Source: The Gift of Script: Google Form – use a switch to determine save location
I use Google Apps Script to support staff and students in my job. I enjoy dabbling with creating tools to help with automation and I freely share my learning experiences on my blog: www.pbainbridge.co.uk
Change Tab Detection on Google Spreadsheet using onSelectionChange Event Trigger with Google Apps Script – submit.md
An example script from Kanshi TANAIKE which lets you test the new
onSelectionChange(e) simple event trigger in Google Sheets.
onSelectionChange(e) trigger runs automatically when a user changes the selection in a spreadsheet.
In the example shared this is used to detect the user changing Google Sheet tab.
Source: Change Tab Detection on Google Spreadsheet using onSelectionChange Event Trigger with Google Apps Script
Before this, when a cell has only one hyperlink. In this case, the hyperlink was given to a cell using =HYPERLINK(“http://www.google.com/”, “Google”) but by a recent update, a cell got to be able to have multiple hyperlinks … In this report, I would like to introduce the method for setting and retrieving the multiple URLs for a cell.
Hyperlinks in Google Sheets cells is a bit of an obsession of mine and it’s nice to see Kanshi TANAIKE has a similar passion. Google are rolling out multiple hyperlinks in Google Sheet cells and Tanaike has provided details on how the hyperlink values can been get/set with Google Apps Script (the official docs are still catching up with Tanaike’s discovery :)
Source: Updated Specification of Google Spreadsheet: Multiple Hyperlinks to a Cell
The following Google Apps Script is designed to create a Shortcut to an existing Google Drive folder, within another folder..
For Google Drive pros you can currently place a file in multiple folders, but Google will be removing this functionality on 30 September 2020. In March Google announced general availability of shortcuts in Google Drive, is is designed to replace the ‘file in multiple locations’ feature. For Google Apps Script developers wanting to migrate to Drive Shortcuts Phil Bainbridge provides this useful Apps Script snippet.
Source: The Gift of Script: Create a Shortcut in Google Drive
One of the challenges with V8 compared to Rhino is that you can’t be sure of the order of global variable initialization. Personally this is not an issue for me, as I avoid any such use of global space, but it is an issue for some. A nice way of dealing with global space is to use namespaces and IEF as I described in Apps Script V8: Multiple script files, classes and namespaces but another, perhaps less obvious way, is put all the variables (and even functions) you need to access from multiple functions in a keystore.
Interesting solution for storing/retrieving variables, particularly when you are using the new V8 runtime.
Source: Apps Script V8: Keystore for global space – Desktop liberation
Apps Script doesn’t have a module loader system. If you’re used to developing in NodeJs, you’ll also be familiar with importing and exporting to include required modules in your project. With Apps Script, you have no control over the order in which multiple script files are executed. In Legacy Apps Script, there seemed to be some kind of workaround going on so that global statements were executed in a sensible order (I don’t know the details), but in V8 this is not the case. …
My golden rules are
- Nothing executable should be in global space
- Don’t rely on the order that things are processed
- Minimize the number of executable functions (1 is good)
- Always assume your code will be reused somewhere else.
Source: Apps Script V8: Multiple script files and namespaces – Desktop liberation
Source: Apps Script V8: spreading and destructuring – Desktop liberation
More tips and guidance from Bruce Mcpherson for developers migrating code to the Apps Script V8 runtime.
Sets and Maps can often be a cleaner way of storing data than using Objects or Arrays, even though at first glance they may seem a little redundant. Unlike an array, they are aware of what else is in the map or set (so you can avoid duplicates), and unlike an object, you can use anything as the key – including the item value itself
Given many Apps Script projects focus on manipulating data Bruce Mcpherson provides a useful introduction to Maps and Sets.
Source: Apps Script V8: Maps and Sets – Desktop liberation
It’s a shorthand way of using a template into which variables are subsituted in a string. This allows for better reuse of string structures, and a few other goodies besides (like all V8 additions, it’s more than just a syntactical spruce up)
Bruce Mcpherson has a very useful post highlighting the benefits of using the new V8 runtime when working with string output
Source: Apps Script V8: Template literals – Desktop liberation
Nice little script snippet from Mariette Timmer which takes a .csv file with latitude/longitude points and plots them on a Google Map and sends the resulting image embedded in an email.
Source: A Walk A Day Keeps The Doctor Away #GoogleAppsScript
A bit of a monologue about various syntax changes and adjustments in learning and using the tool.
Source: Things one can get used to for the V8 Google Apps Scripts engine
One of the key things that V8 has sorted out is the scope of variables. Using var to declare variables meant that anything declared within the scope of a function could easily be accidentally overwritten, causing hard to track down errors. ES6 (since it’s commonly known as V8 in Apps Script – I’ll be referring to it as V8 from now on), has added const and let to the variable declaration vocabulary to help prevent these kind of problems.
Why not make it a proper library? Because to make it a drop-in replacement, needs to have access to global scope, which a library doesn’t.
The V8 runtime changes how the
Logger class works, which has shown much slower load times for simple Logging statements. This snippet writes all
Logger.log calls to a spreadsheet when invoked, greatly speeding up development time.
I’m a public school teacher writing Apps Script projects to manage documentation and to make life easier in general. You can read more on my blog, blog.ohheybrian.com or follow me on Twitter, @bennettscience.