GAS不会运行GmailApp.getUserLabelByName onEdit

时间:2017-01-12 23:27:47

标签: google-apps-script

我已创建Google Apps脚本(GAS),以便在将记录添加到我的电子表格时创建电子邮件草稿。

我使用onEdit来调用我的方法(大大简化),如下所示:

function onEdit(e){
   populateCache("test");
}
function populateCache(label){
   Logger.log("before");
   var thisLabel = GmailApp.getUserLabelByName(label);
   Logger.log("after");
}

这记录"在"之前,但从未到达"在"之后,我没有收到任何错误。如果我通过调试手动调用该方法,它将按预期工作。

为什么这一行会通过onEdit失败?

var thisLabel = GmailApp.getUserLabelByName(label);

如何让它发挥作用?

1 个答案:

答案 0 :(得分:1)

我按照脚本检查了情况。当“onEdit()”未注册为触发器时,权限错误显示为“Logger.log(e)”。通过注册触发器,错误消失。并且'Logger.log(“之后”)'已被执行。

function onEdit(e){
   populateCache("test");
}
function populateCache(label){
  Logger.log("before");
  try{
    var thisLabel = GmailApp.getUserLabelByName(label);
  }
  catch(e){
    Logger.log(e)
  }
  Logger.log("after")
}