在嵌入表单时获取表单提交上的用户名

时间:2013-05-02 17:08:55

标签: google-apps-script

我一直在修改此处的帮助台教程脚本:

https://developers.google.com/apps-script/articles/helpdesk_tutorial

由于这仅供内部使用,我删除了“联系电子邮件”字段,并将表单日志设置为电子表格的用户名。我编辑了formSubmitReply函数补偿:

原件:

function formSubmitReply(e) {
var userEmail = e.values[3];
MailApp.sendEmail(userEmail,
    "Help Desk Ticket",
    "Thanks for submitting your issue. \n\nWe'll start " +
    "working on it as soon as possible. \n\nHelp Desk",
    {name:"Help Desk"});
}​

修改:

function formSubmitReply(e) {
var userEmail = e.user;
MailApp.sendEmail(userEmail,
    "Help Desk Ticket",
    "Thanks for submitting your issue. \n\nWe'll start " +
    "working on it as soon as possible. \n\nHelp Desk",
    {name:"Help Desk"});
}​

如您所见,我所做的就是更改userEmail变量的定义方式。当我查看实时表格并提交票证时,它似乎有效。

但是,在我将表单嵌入到内部Google网站(我们的“内部网”)后,它就不再有用了。

我是否需要在嵌入表单时定义userEmail才能工作?

我也试过这个:

var userEmail = sheet.getRange(lastRow, getColIndexByName("Username")).getValue();

但没有运气。任何帮助,将不胜感激!我显然是新手,只是试图破解一些东西以使其正常工作。

干杯

1 个答案:

答案 0 :(得分:1)

事件显然是针对嵌入式表单构建的。

尝试:

var userEmail = Session.getEffectiveUser().getEmail();

这将独立于事件,并应标识运行脚本的用户。