如何使用Google脚本返回所有任务

时间:2019-06-16 00:04:52

标签: google-apps-script

我有一些代码可以返回任务列表之一中的任务。 问题在于它一次只返回19个任务。如果可以的话,这是很正常的事情

代码正在使用中

  var tasks=Tasks.Tasks.list(tasklistID);
  return tasks

1 个答案:

答案 0 :(得分:2)

  • 您要使用Google Apps脚本从任务列表中检索所有任务。
  • 任务列表中有100多个任务。
  • 您已经可以使用Tasks API。

如果我的理解是正确的,那么修改后的脚本怎么样?

修改点:

  • Tasks.Tasks.list()maxResults的默认值为20。
    • 在您的情况下,它使用最大值的maxResults: 100。这样,可以减少API调用的次数。
  • 当检索到100个以上的任务时,需要使用nextPageToken的属性。

当以上几点反映到您的脚本中时,它如下所示。

修改后的脚本:

var tasklistId = "###"; // Please set this.

var list = [];
var pageToken = "";
do {
   var res = Tasks.Tasks.list(tasklistId, {maxResults: 100, pageToken: pageToken});
   Array.prototype.push.apply(list, res.items);
   pageToken = res.nextPageToken;
} while (pageToken);

Logger.log(list) // You can retrieve all tasks with "list".

注意:

  • 使用此脚本时,请在高级Google服务中启用Tasks API。
  • 尽管未提及,但如果您要检索所有任务,包括已完成的任务,请按如下所示修改var res = Tasks.Tasks.list(tasklistId, {maxResults: 100, pageToken: pageToken})
    • var res = Tasks.Tasks.list(tasklistId, {maxResults: 100, pageToken: pageToken, showHidden: true})

参考:

如果我误解了您的问题,而这不是您想要的结果,我深表歉意。