gpt4 book ai didi

javascript - 在 Google Apps 脚本中,无法以编程方式创建触发器以从 onEdit 触发器发送电子邮件

转载 作者:行者123 更新时间:2023-11-28 18:37:26 25 4
gpt4 key购买 nike

我正在尝试创建一个 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com