2017-01-12 20 views
0

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

我用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

您是否设置了“onEdit()”的触发器?当没有触发它时,会发生权限错误。 – Tanaike

+0

工作正常!如果您将其标记为答案,我会接受它。我想知道为什么代码在没有问题的情况下执行。 – davids

+0

感谢您的意见。我将其归纳为答案。请证实。 – Tanaike

回答

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") 
}