Google apps script 应用程序脚本中onOpen触发器中的SQL语句不工作

Google apps script 应用程序脚本中onOpen触发器中的SQL语句不工作,google-apps-script,google-cloud-sql,Google Apps Script,Google Cloud Sql,我已经使用Google Apps脚本编写了一个逻辑,该脚本将验证登录用户的电子邮件id与数据库中存在的id。如果数据库中存在该电子邮件,在其中一个单元格中填充登录用户的电子邮件id。这应该在没有手动干预和电子表格打开事件的情况下完成,并且如果有人试图复制相同的电子表格,也应该可以 如果方法不包含SQL语句,则在这两种方法中都执行onOpen() 在原始表格中 当有人复制它时 如果方法包含SQL语句,则onOpen()只执行 在原始表格中(如果有人或甚至我本人复制 它) 请确认 如果我的理解是正确

我已经使用Google Apps脚本编写了一个逻辑,该脚本将验证登录用户的电子邮件id与数据库中存在的id。如果数据库中存在该电子邮件,在其中一个单元格中填充登录用户的电子邮件id。这应该在没有手动干预和电子表格打开事件的情况下完成,并且如果有人试图复制相同的电子表格,也应该可以

如果方法不包含SQL语句,则在这两种方法中都执行onOpen()

  • 在原始表格中
  • 当有人复制它时
  • 如果方法包含SQL语句,则onOpen()只执行

  • 在原始表格中(如果有人或甚至我本人复制 它)
  • 请确认

  • 如果我的理解是正确的,并且SQL语句在 onOpen()当有人复制工作表时触发
  • 在原始工作表和副本中执行此功能的替代方案是什么(使用“制作副本”选项制作)

  • 不要把它命名为onOpen,使用其他名称,这样它就可以在您的用户ID下运行,而不是在每个用户下运行。
    这样做会破坏副本,因为您需要手动安装OnOpenRigger

    我想为所有制作我的工作表副本的用户运行它。我尝试给它一个不同的名称,并在所有资源下安装它,但观察到当对工作表进行复制时,触发器不会被复制到新创建的副本工作表中。对于这种情况,我通常会在菜单中添加一些按钮,如“安装触发器”,并向用户提及,在创建副本后,必须运行该按钮。一旦用户运行它并给予适当的权限,脚本就会正常工作。在没有用户权限的情况下无法解决作用域问题,因为这会破坏google应用程序脚本安全策略。