【发布时间】:2013-02-01 19:43:45
【问题描述】:
我有许多表格都可以正常工作几个月(在少数情况下甚至几年)。我们是一个小学区,我是唯一的技术人员。我建立了表格,以便教师可以请求设备、寻求帮助或提出一般性问题。该表格嵌入在与工作人员共享的谷歌网站中。一旦他们提交,每个电子表格中的应用程序脚本会收集表单数据并将其通过电子邮件发送给我,因此我不必在电子表格中查找它。长期以来,这一切都很好。从最近几天开始,我收到了错误消息(下面的示例),而且我的 onformsubmit 触发器似乎都丢失了。
function onMyFormSubmit(e) {
var myEmailAddress = "aUser@mydomain.com" ;
var myEmailSubject = "Ask The Tech" ;
var replyToAddress = String(e.namedValues['Username']);
try{
var message = e.values.join( "][" );
var hmessage = "<b>From: </b>" + replyToAddress + "<br>";
hmessage += "<b>Question: </b>" + e.namedValues['Your Question'] + "<br>";
hmessage += "<b>When: </b>" + e.namedValues['Timestamp'] + "<br>";
var advancedArgs = {htmlBody:hmessage,replyTo:replyToAddress};
MailApp.sendEmail(myEmailAddress, myEmailSubject, message, advancedArgs) ;
}
catch(err){
MailApp.sendEmail(myEmailAddress, myEmailSubject, err) ;
}
}
Start Function Error Message Trigger End
2/1/13 2:30 PM onMyFormSubmit You do not have permission to call getActiveSpreadsheet formSubmit 2/1/13 2:30 PM
从示例脚本中可以看出,没有一个脚本直接调用 getActiveSpreadSheet,所以我不明白为什么会收到此消息。此外,一旦我查看脚本并意识到触发器已经消失,当我添加一个新触发器时,脚本在表单提交时再次开始工作,但是我仍然收到发送到我的邮箱的错误消息,以及脚本生成的电子邮件.
这个问题是否与最近的表单修改有关,我的代码有缺陷,或者我能做些什么?如果是谷歌错误,是否有问题跟踪器我应该提交我的问题?提前感谢您的任何回复!
【问题讨论】:
-
看来您不是唯一遇到此问题的人。您能否尝试在脚本中添加 SpreadsheetApp.getActiveSpreadsheet() 并在脚本编辑器中运行一次以获取电子表格服务的授权面板?
-
感谢您的建议,并确认不仅是我。我尝试将 SpreadsheetApp.getActiveSpreadSheet() 分配给函数顶部的变量,然后在编辑器中运行脚本,但它没有请求授权,然后在第一次点击“namedValues”时失败并出现类型错误(正如您在编辑器中运行时所期望的那样)。然后我也尝试提交一个新的表单响应,结果和以前一样(得到了代码生成的电子邮件,但也得到了错误消息)。
-
问题跟踪器:https://code.google.com/p/google-apps-script-issues/issues/list