Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 事件中的URLfetch失败_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 事件中的URLfetch失败

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

我在单元格中有两个组合框,由工作表中的范围填充。当第一个更改时,我构建一个URL并调用:

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
配置为用作触发器。转到参考资料>所有触发器,添加新触发器,设置函数名,事件:从电子表格,在编辑触发器