- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个 onEdit 触发器来发送电子邮件。我知道它默认不起作用,如下所述:
Because simple triggers fire automatically, without asking the user for authorization, they are subject to several restrictions: They cannot access services that require authorization. For example, a simple trigger cannot send an email because the Gmail service requires authorization, but a simple trigger can translate a phrase with the Language service, which is anonymous.
但我认为我可以使 onEdit 事件以编程方式创建另一个时间驱动的触发器,该触发器反过来会发送电子邮件。我知道(1)我的 onEdit 触发器可以独立工作,(2)手动运行该函数以编程方式创建时间驱动的触发器来发送电子邮件,可以独立工作。但是当我将 2 放入 1 时,它不起作用。
var ss = SpreadsheetApp.getActiveSpreadsheet();
var ssName = ss.getName();
var budgetLeft = ss.getRange("Test!B1").getValue();
var emailAddress = ss.getRange("Test!B4").getValue();
if (budgetLeft <= 4860) {
function SendEmailOnTrigger() {
MailApp.sendEmail({
to: emailAddress,
subject: "Warning: " + ssName,
htmlBody: "Sample Message",
});
}
}
function onEdit(e){
function createTimeDrivenTriggersTest() {
// Trigger TEST.
ScriptApp.newTrigger('SendEmailOnTrigger')
.timeBased()
.everyMinutes(1)
.create();
}
}
它是否“知道”将创建的时间驱动触发器将发送电子邮件,而使用简单触发器启动时这是 Not Acceptable ?这就是为什么它不起作用?预先感谢您的任何帮助。
最佳答案
正如桑迪·古德(Sandy Good)所解释的那样,可安装的触发器继承了创建它们的进程的授权。如果它是由您手动运行 onEdit 函数创建的,则 onEdit 将充当您的 Angular 色,并可以创建一个充当您 Angular 色的触发器。但如果一个函数是由一个简单的触发器执行的,那么它只被授权修改它所绑定(bind)的电子表格,而不能执行其他任何操作。
要了解为什么需要这样做,请想象一下,当您使用绑定(bind)脚本打开某人的共享电子表格时,该脚本中的 onOpen
函数安装了一个触发器,该触发器会定期将您的电子邮件转发到其他地方。
因此,只需使用可安装的编辑触发器而不是简单的触发器。
关于javascript - 在 Google Apps 脚本中,无法以编程方式创建触发器以从 onEdit 触发器发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36826576/
当 O 列中的单元格提到“已发货”时,我想在 C 列(以及相应的行)中发送电子邮件 需要支持才能正确使用此脚本 function sendEmail(e) { var thisSheet =
我目前正在使用这个脚本: function onEdit(e) // Set a comment on the edited cell to indicate when it was change
我正在尝试组合多个 onEdits,以便当一列中的复选框为 true 时,该行将拍摄到某个选项卡。同样,当该复选框在另一个中标记为 true 时,同一行将跳转到完全不同的选项卡。 这些是分开工作的,但
我试图让它自动运行,但是对于当前的形式,它只有在我手动运行代码时才有效。 我在此工作表中有另一个代码文件,它也使用 onEdit,我如何将相同的 onEdit 合并到此代码中,或者在选择 G 列“完成
所以我有一个 Google 电子表格,它通过一个名为“writeToSheet”的脚本不断更新(这工作正常)。这会在电子表格的末尾写入一个新行,其中最后一列是日期。 我还有第二个脚本,其中包含一个名为
我正在使用 Google 电子表格/Google 表单在 Google Apps 脚本中开发一个小项目。 我想通过将类(class)输入 Google 表单来帮助大类学生找到一起学习的人。从那里,他们
当我编辑第 6 列时,我使用此脚本自动确定第 1 列的日期 function onEdit(e) { var colToWatch = 6, colToStamp = 1; var t
目前代码无法运行 function onEdit() { var sheet = SpreadsheetApp.getActive().getSheetByName('Class'); var lev
我正在尝试在 javafx 中使用 TextField。场景:我有填充了特定对象的 ListView 和编辑按钮来编辑与 ListView 的列表单元格关联的对象。当我单击编辑按钮时,它会将我重定向到
我写了一个小函数: function weeklyCurrency(e) { var changed_cell = e.range.getA1Notation(); Logger.log(ch
我是一名编程新手,我意识到这可能是一个愚蠢的问题,但我似乎找不到解决方案。我在 Google 表格中使用 onOpen 触发器和 onEdit 触发器。onOpen 函数仅通过输入框从用户处获取名称。
我一直在使用 OnEdit 一段时间并且它工作得很好 - 但是刚才我遇到了一个问题 - 基本上当第 6 (f) 列被编辑时,我希望它检查值 - 如果它是“进行中”我想要然后它运行一个函数来发送电子邮件
我写了一个简单的脚本,试图以编程方式从 onEdit 函数创建一个脚本 function onEdit() { test(); } function test() { triggerLater
我找不到关于 event.source 对象的任何详细文档,所以我想知道是否可以访问修改范围的先前值,以便我可以将范围的新值与范围的旧值进行比较以进行验证。 谢谢你的帮助。 OnEdit(事件) fu
我正在尝试为使用单元格注释的工作表构建一个简单的日志。不知何故,我无法包含触发 onEdit-event 的用户的电子邮件。 function onEdit(e){ var email = S
所以我有一个 Google 工作表,当用户输入一个项目的编号时,它会输出描述和价格。我实际上有 50 张(美国每个州一张)几乎完全相同,但价格略有不同,因为州税因州而异。 我使用 onEdit() 让
我正在尝试为使用单元格注释的工作表构建一个简单的日志。不知何故,我无法包含触发 onEdit-event 的用户的电子邮件。 function onEdit(e){ var email = S
所以我有一个 Google 工作表,当用户输入一个项目的编号时,它会输出描述和价格。我实际上有 50 张(美国每个州一张)几乎完全相同,但价格略有不同,因为州税因州而异。 我使用 onEdit() 让
我有这个简单的脚本,它应该在单元格更改时发送电子邮件 function onEdit(e) { var doc = e.source; var r = doc.getActiveRange().g
我有这个简单的触发器脚本,它应该在下一列中添加时间戳。很简单,onEdit 不会捕获所有编辑。 我可以在设置中做任何事情吗? function onEdit(e){ if (e.value ==
我是一名优秀的程序员,十分优秀!