如何允许其他用户在 Google 电子表格中运行我的脚本

问题描述 投票:0回答:1
  1. 电子表格:https://docs.google.com/spreadsheets/d/1Gw_inIKmUZge13v6Q04FJF7GLovv1reHGvVCcL7GvO0/edit?usp=sharing

  2. 网络应用程序:https://script.google.com/macros/s/AKfycbyyD26jyB159v5x7B23mXWrFNfRalWb5OtO_jkalizIYouHr5yJJOLRcfuLj7hbmrxj/exec

  3. 脚本文件:

function doGet(e){
  return HtmlService.createHtmlOutputFromFile("RunTimeStamp");
}

function userClicked(e){
  onEdit(e);
}

function onEdit(e) {

  novemberStart(e);  
  novemberEnd(e);
  novemberWalletStart(e);
  novemberWalletEnd(e);
  decemberStart(e);  
  decemberEnd(e);
  decemberWalletStart(e);
  decemberWalletEnd(e);
}
  1. HTML
        function runTimeStampScript(){
          google.script.run.userClicked(e);
        }

问题:

为什么其他用户无法成功运行上面的脚本?我是 Google Apps 脚本的新手,每当编辑单元格时,我都会尝试更新 Google SpreadSheet 中的时间戳。它对我来说效果很好。但是,当我使用另一个具有编辑器访问权限的 Google 帐户打开电子表格,通过转到上面的 URL 单击 Web 应用程序触发器,并编辑脚本检查的列中的单元格时,时间戳不会显示更新。

顺便说一句,我没有收到“您无权执行此操作”错误。当我尝试通过另一个 Google 帐户(模仿“其他用户”)使用它时,它不起作用。

我在这里阅读了类似的问题并尝试了他们的解决方案,但我只是不知道如何在我的电子表格中成功实现它们。

javascript html google-apps-script google-sheets timestamp
1个回答
0
投票

您的 onEdit 将自行运行:

function onEdit(e) {
  novemberStart(e);  
  novemberEnd(e);
  novemberWalletStart(e);
  novemberWalletEnd(e);
  decemberStart(e);  
  decemberEnd(e);
  decemberWalletStart(e);
  decemberWalletEnd(e);
}

通过 userClicked(e) 调用 onedit 永远不会起作用,因为 userClicked 中的 e 没有填充事件对象,所以我想它每次都会失败,您可以使用执行日志进行检查。当然,我不知道你在 onEdit 中做什么,因为函数没有定义。

© www.soinside.com 2019 - 2024. All rights reserved.