【问题标题】:e.response.getId().getEditResponseUrl(); in Google Apps Script does not worke.response.getId().getEditResponseUrl();在 Google Apps 脚本中不起作用
【发布时间】:2014-12-20 20:58:19
【问题描述】:

我制作了一个工具,用于存储票号和一些由其他团队成员移交的详细信息。在那个过程中,我使用了一个表单来提交移交,并使用 Google 电子表格作为数据库。另外我想通知团队成员并由他们实现编辑数据,所以我写了一个脚本如下。

function formSubmitReply(e) 
{
var timeStamp = e.values[0];
var sendTo = e.values[1];
var ticket = e.values[2];
var description = e.values[3];
var editResponseURL= e.response.getId().getEditResponseUrl();
logger.log(editResponseURL);

MailApp.sendEmail(sendTo,
                  "New Handover",
                  ticket +" handovered to you at "+ 
                  timeStamp +"\n\nDescription:"+
                  description +
                  "\n\nKindly check it using the below link\n\n"+
                  editResponseURL +"",
                   {name:"Handover Mail"});}

在上面的代码中,当我删除下面的代码时一切正常

var editResponseURL= e.response.getId().getEditResponseUrl();

没有错误,这就是我无法排除故障的原因。我也无法记录详细信息。请告诉我保存 URL 的方法。 现在,如果我成功保存 URL 并将 URL 发送给其他人,是否有任何方法允许仅编辑单个问题,例如问题票号、描述、状态,我希望用户仅更改为状态和休息应该被禁用。我不知道 Google 表单中有这样的功能。

【问题讨论】:

    标签: google-app-engine google-apps-script google-sheets google-forms


    【解决方案1】:

    没有错误并不意味着您无法进行故障排除。一个好的开始是查看执行记录。

    无论如何,问题在于您正在混合可用的事件对象。根据您的描述,这是符合以下条件的:

    var editResponseURL= e.response.getId().getEditResponseUrl();
    

    我假设此脚本附加到电子表格中。对于电子表格,e.response is not a usable field,但是,如果您将脚本附加到表单,您会发现e.values are not a usable field

    这里一种可能的解决方案是重写表单的脚本,因为表单实际上存储响应,您不需要电子表格来为您存储数据,除非您希望能够读取单个响应。

    您可以在 FormResponse 页面上找到一个类似的示例,该示例循环遍历对表单的所有响应并记录它们的值。从那里您可以添加发送值的脚本部分。

    在使用表单时,为了获取时间戳,然后可以使用.getTimestamp()的方法,我认为这比电子表格时间戳更可靠(我相信工作表上的时间戳是写入工作表的时间,而不是提交到表单的时间。通常它们在几分钟/秒内是相同的时间,但并非总是如此)。

    关于获取仅允许您编辑某些响应的编辑 URL,不,这是不可能的。没有任何工作可以解决这个问题,我怀疑是否存在。

    【讨论】:

    • 一切正常,但无法获取时间戳值。我使用了带有索引号的 itemResponses[] ,现在 0 定义了 sendTo ,它以前用于引用时间戳。还建议我是否可以按照我在主要问题中的要求禁用 Google 表单中的某些特定问题。
    • 抱歉,我忘了在我的原始答案中包含这一点。我已经对其进行了编辑以解决您的两个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 2022-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多