Apps脚本库权限

时间:2012-10-08 19:08:27

标签: google-apps-script

当我创建访问电子表格并在脚本中使用它的Apps脚本库时,我收到权限错误(对于以下示例中的setValue)。 如果我在脚本中调用相同的电子表格函数一次(然后将其删除),然后调用库函数,我将永远不会再次获得权限错误(它是可重现的)。

您是否曾经历过这种行为,如果是,您是如何解决这个问题的?

由于

图书馆

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

脚本

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

错误消息
“您没有调用setValue所需的权限”

2 个答案:

答案 0 :(得分:2)

您的脚本必须具有与库需要相同的授权:如果您知道库读/写电子表格或日历(或其他),则必须为这些服务授权脚本。 您可以使用一些(甚至是虚拟的)函数轻松地完成此操作,该函数将告诉系统调用所需服务的授权过程。根据您的描述,我想系统不会在您保存脚本时检查库中的内容,因此对于脚本在未经授权的情况下写入电子表格有点“惊喜”。如果您包含我之前提到的(虚拟)调用,脚本将知道您将要执行的操作并在第一次运行尝试时请求授权。

希望我足够清楚。

答案 1 :(得分:1)

要关闭此功能 - Stefan报告的问题已被确认为问题。我们正在研究这个问题。传入电子表格的权限未被库正确吸收。

Stefan - 如果您愿意,请随时在issue tracker创建报告。