我正在为Google表单的回复提交构建插件,因此插件是SpreadSheet上的脚本。
插件尚未发布,因为它正在开发中,为了进一步开发脚本,我想捕获onFormSubmit事件,并使用用户提交的数据做一些事情。
我尝试以编程方式添加新的触发器,但是这样做,插件就会失败,因为插件会消失,并且根本不会重新加载,并且电子邮件没有错误报告。有一次,在为脚本编辑器添加onFormSubmit监听器的代码之后,我尝试了"发布>测试为插件...",并选择电子表格再次测试,我被要求提供另一个脚本权限 - 甚至这是必要的,因为脚本范围已经改变,我仍然无法做到这一点。 t加载插件。
Gahh,这是我的尝试:
function onOpen(e) {
addFormSubmissionListener();
// other init...
}
function addFormSubmissionListener() {
var sheet = SpreadsheetApp.getActive();
ScriptApp.newTrigger("onFormSubmit")
.forSpreadsheet(sheet)
.onFormSubmit()
.create();
}
function onFormSubmit(e) {
// do stuff with form submission //
Logger.log(e.response.getId());
}
答案 0 :(得分:0)
这样的事情会让你上路。
function onInstall() {
addFormSubmissionListener();
// other init...
}
function addFormSubmissionListener() {
var sheet = SpreadsheetApp.getActive();
ScriptApp.newTrigger("onFormSubmit")
.forSpreadsheet(sheet)
.onFormSubmit()
.create();
}
function onFormSubmit(e) {
// do stuff with form submission //
Logger.log(e.values);
}
onInstall()应该表示触发器只安装一次而安装只运行一次。您可能还希望在将其作为触发器安装之前检查当前项目触发器,因为它已经存在。
当我提交表格时。我在记录器中记录了表单值。