Stefan
Stefan

Reputation: 45

Apps Script libraries permission

When I create an Apps Script library that accesses a spreadsheet and use it in a script then I get a permission error (for setValue in the following example). If I call the same spreadsheet function in the script once (and then remove it) and then call the library function I will never get the permission error again (It's reproducible).

Have you ever experienced such behavior and if yes how did you solve this problem?

Thanks

The library

function addRecord(ss, sheetName) {
  var sheet = ss.getSheetByName(sheetName);
  sheet.getRange("A1:A1").setValue("Hello World!");
}

The script

function myFunction() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  MyLib.addRecord(ss, "Sheet1");
}

The error message
"You don’t have the required permission to call setValue"

Upvotes: 4

Views: 3266

Answers (2)

Arun Nagarajan
Arun Nagarajan

Reputation: 5645

To close this - the issue reported by Stefan has been confirmed as an issue. We are looking into this. Permissions to a passed in spreadsheet are not being correctly absorbed by a library.

Stefan - please feel free to create a report on issue tracker if you prefer.

Upvotes: 2

Serge insas
Serge insas

Reputation: 46794

Your script must have the same authorizations than the libraries need to have : if you know that the library reads/writes a spreadsheet or a calendar (or whatever) you have to authorize the script for these services. You can do that quite easily with some (even dummy ) function that will tell the system to call the authorization process for the required services. From what you describe I guess the system doesn't check what is inside the library when you save you script so it's kind of a 'surprise' for the script to write to the spreadsheet without authorization. If you include the (dummy) calls I mentioned before the script will know what you are going to do and ask for authorization on the first run attempt.

Hoping I'm clear enough.

Upvotes: 3

Related Questions