Google Apps Script:onWeekday非函数的TypeError问题排查与求助
Google Apps Script TypeError: onWeekday is not a function 解决方法
问题核心
创建每周时间驱动触发器时触发以下错误:
ScriptApp.newTrigger(...).timeBased(...).everyWeeks(...).onWeekday is not a function
原因分析
方法调用顺序错误:
timeBased()返回ClockTriggerBuilder对象,该对象包含onWeekday()方法- 调用
everyWeeks()后,对象会转为RecurrenceTriggerBuilder,而这个对象没有onWeekday()方法 - 你当前的代码先调用
everyWeeks()再调用onWeekday(),导致找不到对应方法
另外,ScriptApp.Weekday 显示 undefined 大概率是调用顺序错误导致的上下文异常,而非枚举本身不可用。
修正代码
调整调用顺序,将 onWeekday() 移到 everyWeeks() 之前:
Logger.log('Starting weekly trigger test...'); try { var testTrigger = ScriptApp.newTrigger('myTriggeredFunction') .timeBased() .onWeekday(ScriptApp.Weekday.MONDAY) // 先指定星期 .everyWeeks(1) // 再设置重复周期 .atHour(9) .nearMinute(0) .create(); Logger.log('Trigger created successfully: ' + testTrigger.getUniqueId()); } catch (e) { Logger.log('Error creating trigger: ' + e.message); Logger.log('Full stack: ' + e.stack); } function myTriggeredFunction() { Logger.log('Trigger fired.'); }
额外验证点
- 如果枚举值仍有问题,可以直接用数字替代:
onWeekday(2)(对应周一,GAS中Weekday枚举值:周日=1,周一=2,...,周六=7) - 确保项目使用V8运行时(你已确认,可忽略)
- 权限配置正确(你已验证,可忽略)
内容的提问来源于stack exchange,提问作者weiying low
相关产品推荐
相关产品推荐

