Google Script 仅对其他用户出现错误对我来说效果很好

问题描述

我是新手,并创建了一个简单的脚本来使用保存按钮收集数据。 作为开发人员,它对我来说很好用,但其他用户收到一条错误消息: “脚本 [name_of_script] 遇到错误

这是 Google Apps 脚本,链接到简单的 Google Sheet,与几个同事共享。他们将输入大约 10 个数据点,点击“保存”按钮将数据保存到“数据”选项卡(相同的 Google 表格文件)并清理单元格。

当我点击“保存”按钮时,它会按预期进行。当我从另一个浏览器(未登录我的 Google 帐户)对其进行测试时,我收到了上述错误消息。这同样适用于我的同事(他们也没有使用谷歌帐户)。 我认为这与部署有关,并且我尝试了所有类型的部署配置文件,改变“执行身份”和“谁有权访问”都无济于事。

表单和工作表不受保护(尽管如果一切顺利,我想保护它们)。

至于“授权”——我不确定这意味着什么。

非常感谢您的帮助。

function submitData() {
  var ss        = SpreadsheetApp.getActiveSpreadsheet();
  var formSS    = ss.getSheetByName("Form"); //Form Sheet
  var datasheet = ss.getSheetByName("Data"); //Data Sheet
   
  //Input Values
  var values = [[formSS.getRange("E26").getValue(),formSS.getRange("E5").getValue(),formSS.getRange("E7").getValue(),formSS.getRange("E9").getValue(),formSS.getRange("E11").getValue(),formSS.getRange("E13").getValue(),formSS.getRange("E15").getValue(),formSS.getRange("E18").getValue(),formSS.getRange("E20").getValue(),formSS.getRange("E22").getValue(),formSS.getRange("E24").getValue()]];
  datasheet.getRange(datasheet.getLastRow()+1,1,11).setValues(values);

 formSS.getRange('E5:E24').clearContent();
SpreadsheetApp.getUi().alert('Thanks')
}

解决方法

您将电子表格绑定的 Google Apps 脚本中的函数分配给要用作按钮的图像。该电子表格与访问者(没有 Google 帐户的用户)共享。访问者在单击图像时会收到错误消息。您尝试了不同的脚本部署方法。

脚本部署用于用作 Gmail、Google 日历、Google Workspace 插件和 Web 应用程序的脚本。部署对从容器调用的函数没有影响,在这种情况下是从电子表格调用的。不幸的是,没有一种解决方法可以让电子表格访问者调用函数。

获取“访问者”(没有 Google 帐户的用户)输入的数据以登录到 Google 电子表格的最简单选项是使用 Google 表单。其他“简单”选项是使用 Google Apps 脚本创建网络应用程序和使用 AppSheet。

资源