Search code examples
node.jsgoogle-apps-scriptgoogle-apps-script-api

ScriptError using Google Apps Script Execution API


Following these guides https://developers.google.com/apps-script/guides/rest/quickstart/target-script and https://developers.google.com/apps-script/guides/rest/quickstart/nodejs, I am trying to use the Execution API in node to return some data that are in a Google Spreadsheet.

I have set the script ID to be the Project Key of the Apps Script file. I have also verified that running the function in the Script Editor works successfully.

However, when running the script locally with node, I get this error:

The API returned an error: Error: ScriptError

I have also made sure the script is associated with the project that I use to auth with Google APIs as well.

Does anyone have any suggestion on what I can do to debug/ fix this issue? The error is so generic that I am not sure where to look.

UPDATE: I've included a copy of the code in this JSBin (the year function is the entry point) https://jsbin.com/zanefitasi/edit?js

UPDATE 2: The error seems to be caused by the inclusion of this line var spreadsheet = SpreadsheetApp.open(DriveApp.getFileById(docID));


Solution

  • It seems that I didn't request the right scopes. The nodejs example include 'https://www.googleapis.com/auth/drive', but I also needed to include 'https://www.googleapis.com/auth/spreadsheets' in the SCOPES array. It seems like the error message ScriptError is not very informative here.

    In order to find what scopes you'd need, to go the Script Editor > File > Project Properties > Scopes. Remember to delete the old credentials ~/.credentials/old-credential.json so that the script will request a new one.