2013-02-01 69 views
2

我有几个表格都可以正常工作几个月(以及几年中的几年)。我们是一个小学区,我是唯一的技术。我建立了表格,以便教师可以请求设备,寻求帮助或提出一般问题。该表格嵌入在与工作人员共享的Google网站中。提交后,每个电子表格中的应用程序脚本会收集表单数据并将其发送给我,以便我不一定非要在电子表格中查找它。这一切都很好地工作了很长时间。从最近几天开始,我一直在收到错误消息(下面的例子),而且看起来我的onformsubmit触发器已经全部丢失。OnFormSubmit触发器问题

function onMyFormSubmit(e) { 
    var myEmailAddress = "[email protected]" ; 
    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,所以我不明白为什么我收到此消息。此外,一旦我看了脚本,并意识到触发器已经消失,当我添加一个新的触发器时,脚本再次开始工作onformsubmit,但是,我仍然收到传递到我的邮箱的错误消息,以及脚本生成的电子邮件。

这个问题与最近的形式改造有关,在我的代码中有缺陷,或者我能做些什么吗?如果这是一个谷歌错误,是否有问题跟踪器,我应该提交我的问题?预先感谢任何回应!

+0

看来,你是不是谁是有这个问题的唯一的一个。您可以尝试在脚本中添加SpreadsheetApp.getActiveSpreadsheet()并在脚本编辑器中运行一次以获取电子表格服务的授权面板吗? –

+0

感谢您的建议,并确认它不仅仅是我。我试着将SpreadsheetApp.getActiveSpreadSheet()分配给函数顶部的一个变量,然后在编辑器中运行该脚本,但它没有要求授权,然后在'namedValues'的第一次命中时出现类型错误, (正如您在编辑器中运行时所预期的那样)。然后我也尝试提交一个新的表单响应,结果与之前一样(获取了代码生成的电子邮件,但也收到了错误信息)。 – Cassidy

+0

问题跟踪器:https // code.google.com/p/google-apps-script-issues/issues /列表 – ScampMichael

回答