4

当我创建一个访问电子表格并在脚本中使用它的 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 所需的权限”

4

2 回答 2

3

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

希望我足够清楚。

于 2012-10-08T22:16:51.987 回答
2

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

Stefan -如果您愿意,请随时创建关于问题跟踪器的报告。

于 2012-10-16T16:13:01.977 回答