Profile cover photo
Profile photo
Spencer Easton

I know I should know this, but is there any event when a user uninstall the add-on to do clean up? I remember seeing something on this but I can't find anything in the docs.

While investigating a report on Stack Overflow I realized I've had a long running web app that worked well up to Chrome 60, but was now failing to a 'Same-Origin' Iframe issue. I changed the XFrameOptionsMode to ALLOWALL and that cleared up this issue. My question: Is this a bug or a feature?

A issue that pops up frequently is that the XmlService can not parse html. I took a look at what was available and found a node module htmlparser2. I ran it though browserify and modified it slightly to work as an Apps Script library. It seems to work quite well. I have the library source on my github:

or you can link to it


For documentation check out the original repo for the module at:

Post has attachment
The script editor in Google Appmaker gives me good hope for the future of the Apps Script IDE. Check out how well the Appmaker editor can follow the context of an object and offer code completion.

Anyone seeing any odd behavior in the admin console this morning. I have inaccurate login in times for users, chrome extensions not pushing, and unusually long page loads.

From the Google Cloud Status Dashboard -
"No change to report from the last update. We're still actively working to resolve issues with Identity/Authentication. Future updates will follow when there is significant progress to report.

To summarize; some long-lived OAuth tokens have inadvertently been invalidated. "

This seems to have affected Apps Script. The solution seem to republish webapps that run as "you". If there are other issues with other types of Scripts post them here so we can consolidate solutions.

I'm getting some scripts hanging on `SpreadsheetApp.openById`. Anyone else see this happening?

Post has attachment
I'm crafting a new library for the Slides API that is intended to be a high level service like DocumentApp or DriveApp. I'm debating about what style of iteration I should use. What style do you prefer?

Style 1)
An Iterator Object:
var slides = myDeck.getSlides();

Style 2)
Array looping:
var slides = myDeck.getSlides();
for(var slide in slides){
votes visible to Public
I prefer Iterator style looping.
I prefer array style looking

Post has attachment
The Slides API was released today. Docs can be found here:

I ran the API through my GAS library generator and have put it up on github.

You can also link directly to the library:


Post has attachment
Today I put together a chrome extension for something I've wanted in the IDE for a long time. This addon adds a button so you can toggle the sidebar open and closed. Now you can have the the sidebar extended to see your long file names and at the push of a button hide it out of view.

This extension is based on the great work done by leonhartX.
Wait while more posts are being loaded