【发布时间】:2019-12-30 00:17:02
【问题描述】:
我现在有困难。我每天都收到"Authorization required to perform that action"。
我使用的触发事件是onFormSubmit。创建触发器后我根本没有编辑代码,但我每天都会收到此错误。当我创建触发器时,谷歌确实要求我批准和允许触发器。即便如此,它还是一直有这个错误。
我可以知道这可能是什么原因吗?
function onFormSubmit(e) {
if (e.values && !e.values[1]) { return; }
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Form Responses 1");
var stage1pressUL = sheet.getRange("AI2").getValue();
var stage1pressLL = sheet.getRange("AJ2").getValue();
var recipients = ""+sheet.getRange("AH2").getValues();
var params = new Array();
var positivelimit = Number.POSITIVE_INFINITY;
var negativelimit = Number.NEGATIVE_INFINITY;
for(var i=0; i<sheet.getMaxColumns(); i++){
params[i] = e.values[i];
}
console.log(params);
var paramsInfo = [
{
name: "ap2233stage1press", number: 3, min: stage1pressLL, max: stage1pressUL
},
{
name: "ap2234stage1press", number: 4, min: stage1pressLL, max: stage1pressUL
},
{
name: "ap2235stage1press", number: 5, min: stage1pressLL, max: stage1pressUL
},
{
name: "ap2236stage1press", number: 6, min: stage1pressLL, max: stage1pressUL
},
];
for(var z=0; z<paramsInfo.length; z++){
var paramsInfoCheck = paramsInfo[z];
var template = HtmlService.createTemplateFromFile(paramsInfoCheck.name);
template[paramsInfoCheck.name] = params[paramsInfoCheck.number];
template.recorded = params[31];
if((params[paramsInfoCheck.number] != "-5") && ((params[paramsInfoCheck.number] < paramsInfoCheck.min) || (params[paramsInfoCheck.number] > paramsInfoCheck.max))){
MailApp.sendEmail(recipients,
"40K RO Parameter Out of Range Notification",
"",{htmlBody: template.evaluate().getContent()});
}
}
}
【问题讨论】:
-
您是否从脚本编辑器中授权了您的脚本?你能分享你的脚本吗?
-
是的,我确实通过脚本编辑器授权了它。每当我通过事件页面创建触发器时,它都会请求授权以查看权限。当我收到一条失败通知指示我需要授权代码时,几乎每天都会这样做。会不会是我的收件人由 13 个单独的电子邮件组成?
-
代码以谁的身份执行?
-
电子表格和脚本的所有者创建了触发器。即使我不是所有者,我也尝试创建触发器,但仍然无法正常工作。
-
表单、电子表格、脚本和触发器是否拥有相同的所有者?