Google apps script 事件中的URLfetch失败
我在单元格中有两个组合框,由工作表中的范围填充。当第一个更改时,我构建一个URL并调用:Google apps script 事件中的URLfetch失败,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我在单元格中有两个组合框,由工作表中的范围填充。当第一个更改时,我构建一个URL并调用: var resp = UrlFetchApp.fetch(url, {"method": "get","muteHttpExceptions":false}); 它填充第二个范围,该范围控制第二个组合框。这在调试模式下工作得很好。但我的目标是使用onEdit模式实现这一点。如果更改了第一个组合框,则该方法将运行并填充第二个组合框。使用此语句: mydoc.getActiveSheet().getRange
var resp = UrlFetchApp.fetch(url, {"method": "get","muteHttpExceptions":false});
它填充第二个范围,该范围控制第二个组合框。这在调试模式下工作得很好。但我的目标是使用onEdit
模式实现这一点。如果更改了第一个组合框,则该方法将运行并填充第二个组合框。使用此语句:
mydoc.getActiveSheet().getRange(15, 1).setValue("Some debug message");
我把它放在整个方法中,看看它死在哪里。我在UrlFetchApp.fetch()
方法后面有一条从不写入的语句,所以我知道这就是问题所在。您可以在活动期间拨打这些类型的电话吗
同样,它也可以通过脚本编辑器手动运行,但在从onEdit
调用时不会运行
我知道他们哪里不允许它,但线程中的最后一条评论说,他通过将另一个自定义方法附加到onEdit来实现它。我从另一个方法调用
URLFetchApp
,但我尝试创建一个myOnEdit函数,并从那里调用URLFetchApp
,但仍然失败。不确定他手动附加到事件的意思…使用一个简单的触发器:
函数onEdit(e){
var response=UrlFetchApp.fetch('http://www.google.com/');
Logger.log(response.getContentText());
}
我得到以下错误(查看->执行记录):
执行失败:您没有调用fetch的权限(第2行,文件“code”)[0.008秒总运行时间]
一种可能的解决方法是创建可安装的触发器:
函数myOnEdit(e){
var response=UrlFetchApp.fetch('http://www.google.com/');
Logger.log(response.getContentText());
}
/*
在电子表格中,创建新触发器:
跑步:myOnEdit
事件:来自电子表格
编辑
*/
非常好。你发的时候我正在通读这些。我从未使用过执行记录
。学会了两个新东西,谢谢!还要确保将自定义OneEdit函数myOnEdit
配置为用作触发器。转到参考资料>所有触发器,添加新触发器,设置函数名,事件:从电子表格,在编辑触发器