提问人:Ben 提问时间:2/13/2020 更新时间:2/13/2020 访问量:419
我可以在没有电子表格的情况下从 Google 表单触发脚本吗?
Can I trigger a script from a Google Form WITHOUT a Spreadsheet?
问:
我真的不想将我的表单回复存储在电子表格中,我只想收到一封包含结果的电子邮件(然后可能连接到 curl API 以将其添加到我的 CRM)
如果我将其用作电子表格,我已经可以工作,但不能仅使用表单中的代码来完成吗?
使用时
function onFormSubmit(e)
我只是没有得到 e 未定义。
提前致谢
本
答:
2赞
Umair Mohammad
2/13/2020
#1
我们可以直接将脚本添加到Google表单中。
我们不需要将响应保存在某些谷歌表格中来运行脚本。
步骤:
- 转到 Google 表单
- 转到选项(3 个垂直点)
- 脚本编辑器
- 在此处添加脚本
0赞
Cooper
2/13/2020
#2
将它们链接到电子表格是一种简单的设置方法,如果您丢失了一个,它将始终存在于电子表格中。如果您想为每个订阅获取一封电子邮件。您可以使用 onFormSubmit 触发器。
您可以使用以下命令创建触发器:
function createOnFormSubmitTrigger(funcname) {
var ss=SpreadsheetApp.getActive();
if(!isTrigger(funcname)) {
ScriptApp.newTrigger(funcname).forSpreadsheet(ss.getId()).onFormSubmit().create()
}
}
这有助于防止您为给定函数创建多个触发器。
function isTrigger(funcName){
var r=false;
if(funcName){
var allTriggers=ScriptApp.getProjectTriggers();
for(var i=0;i<allTriggers.length;i++){
if(funcName==allTriggers[i].getHandlerFunction()){
r=true;
break;
}
}
}
return r;
}
这可能是使电子邮件发生的简单方法。
function emailme(e) {
var keys =Object.keys(e.namedValues);
var msg="";
for(key in e.namedValues) {
msg+=Utilities.formatString('\n%s: %s ',key,e.namedValues[key]);
}
GmailApp.sendEmail('your email address', "Form submission", msg)
}
运行一次,将 emailme 脚本与 onFormSubmit 触发器链接起来。
function makeTrigger() {
createOnFormSubmitTrigger('emailme')
}
评论