You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google App Scripts Task API:未指定showHidden:true为何丢失已完成任务?

Google Tasks API 获取已完成任务需显式指定showHidden: true的原因

Google Tasks API的默认逻辑里,已完成的任务会自动被标记为"隐藏"状态——哪怕showCompleted参数默认值是true,如果没显式指定showHidden: true,这些已完成的隐藏任务依然不会被返回。

看你的代码例子:

未指定showHidden: true的情况

const tasks = Tasks.Tasks.list(taskListId);
console.log(tasks.items.length);
for (let i = 0; i < tasks.items.length; i++) {
  console.log(tasks.items[i]);
}

输出:

1
Test 2

这里只返回未完成的Test 2,因为已完成的Test 1被标记为隐藏,默认接口不会返回隐藏项。

指定showHidden: true的情况

const tasks = Tasks.Tasks.list(taskListId,{showHidden:true});
console.log(tasks.items.length);
for (let i = 0; i < tasks.items.length; i++) {
  console.log(tasks.items[i]);
}

输出:

2
Test 1
Test 2

此时showHidden: true会强制拉取所有隐藏项,包括已完成的任务,所以能拿到全部两个任务。

关键逻辑说明

showCompleted参数只是控制是否允许返回已完成任务,但Tasks对已完成任务的默认处理是将其设为隐藏状态。因此要获取已完成任务,必须同时开启showHidden: true——它才是决定是否返回隐藏项(包括已完成任务)的关键开关。

如果需要获取所有任务(已完成+未完成),调用接口时建议显式声明两个参数,代码更清晰:

const tasks = Tasks.Tasks.list(taskListId, {
  showCompleted: true,
  showHidden: true
});

内容的提问来源于stack exchange,提问作者Dolav Soker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 08:12:21