Google apps script 触发函数时无法进行UrlFetch
我构建了GoogleApps脚本应用程序,通过外部API获取数据 运行此应用程序时,我得到了预期的结果,没有任何错误。然而,当使用时间驱动触发器运行它时,我得到了错误。有人知道为什么会发生这种错误吗 守则:Google apps script 触发函数时无法进行UrlFetch,google-apps-script,Google Apps Script,我构建了GoogleApps脚本应用程序,通过外部API获取数据 运行此应用程序时,我得到了预期的结果,没有任何错误。然而,当使用时间驱动触发器运行它时,我得到了错误。有人知道为什么会发生这种错误吗 守则: function triggerFetchTest() { // get token try { var id = "my_id", password = "my_password", tokenUrl = ("https://api.ex
function triggerFetchTest() {
// get token
try {
var id = "my_id",
password = "my_password",
tokenUrl = ("https://api.example.jp/v1/foo/auth/get_token?id=" + id
+ "&password=" + password),
tokenResponse = UrlFetchApp.fetch(tokenUrl);
var token = JSON.parse(tokenResponse.getContentText())["token"];
Logger.log(token);
}
catch(e) {
Logger.log(e);
}
}
此外:
- 如果我在脚本编辑器中按“运行”按钮,我可以得到正确的响应
- 我设置触发器没有任何问题
- 我试图设置“muteHttpExceptions”:true,但出现了错误
- 即使被触发,中显示的以下代码也正常
我想为此应用程序设置每日计时器并自动生成报告。请给我一些想法
*这篇文章是我在Stackoverflow的第一篇文章,我通常不会说英语,所以如果你不能阅读我上面的英语,我很抱歉…sama,
尝试通过函数设置触发器。首先删除触发器,然后将此函数添加到代码中并运行:
function setTrig(func){
func=func||"triggerFetchTest";
ScriptApp.newTrigger(func).timeBased().everyMinutes(5).create();
}
类似的事情也发生在我身上,我记不清确切的解释。尝试将主函数设置为doGet()或doPost(),并使用以下设置将脚本发布为web应用程序:以我的身份执行应用程序,并允许任何人,甚至匿名访问它。然后创建另一个函数,对web应用URI执行GET或POST请求 我认为它可以工作,因为触发器不会在您登录时运行(类似于AuthMode.NONE),它需要能够执行urlFetch,当您在应用程序上执行该操作时,将调用doGet()或doPost(),这是所有工作的完成位置
示例:是一个与谷歌应用程序脚本UrlFetch和触发器相关的脚本。请在这个公开问题上加上星号并留下评论,迫使谷歌对此采取行动。Harold,谢谢你的回复。我尝试按照您的建议以编程方式设置触发器,但没有成功<代码>函数everyDayTrigger(){ScriptApp.newTrigger(“triggerFetchTest”).timebase().everyMinutes(1.create();}我已经选中了“Transcript”,它显示运行的脚本在“UrlFetchApp.fetch()”点失败。我什么都不知道…到底是什么错误?