我构建了Google Apps脚本应用程序,该应用程序通过外部API获取数据。
运行此应用时,我得到了预期的结果,没有任何错误。但是,当由Time-Driven Trigger运行时,我收到错误。有人知道为什么会出现这个错误吗?
代码:
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);
}
}
此外:
var url ='https://gdata.youtube.com/feeds/api/videos?' +'q =滑板+狗' +'& start-index = 21' +'& max-results = 10' +'& v = 2'; var response = UrlFetchApp.fetch(url); Logger.log(响应);
我想为此应用设置每日定时器并自动生成报告。请给我一些想法。
* 这篇文章是我在Stackoverflow上的第一篇文章,我不是正常的英语发言人,所以如果你不能阅读我上面的英语,我很抱歉...
答案 0 :(得分:0)
SAMA,
尝试通过函数设置触发器。首先删除触发器,然后将此函数添加到代码中并运行它:
function setTrig(func){
func=func||"triggerFetchTest";
ScriptApp.newTrigger(func).timeBased().everyMinutes(5).create();
}
像我这样的事情发生在我身上也无法完全记住解释。
答案 1 :(得分:0)
尝试将主要功能设为doGet()或doPost()并将脚本作为具有以下设置的Web应用程序发布:以我身份执行应用程序,让任何人,甚至匿名访问它。然后,只需创建另一个对Web应用程序URI执行GET或POST请求的函数。
我认为它的工作原理是因为你在登录时没有运行触发器(比如AuthMode.NONE),它需要能够只做一个urlFetch,当你在你的应用程序上执行时会调用doGet()或doPost(),这是完成所有工作的地方。
答案 2 :(得分:0)
这是与Google Apps脚本UrlFetch和触发器相关的open issue。请注明并对此公开问题发表评论,以迫使Google采取相应措施。