Как проверить выполненные задачи Google в скрипте Google? - PullRequest
0 голосов
/ 18 октября 2018

Я пытаюсь написать Google Script, который реализует идею, содержащуюся в этом псевдокоде:

access a specific Google tasklist

for each task in that tasklist {
    if the task is completed {
        perform an operation
    }
}

Я столкнулся с проблемой - когда мой скрипт обращается к конкретному списку задач, я могуполучать информацию только по незавершенным задачам, и выполненные задачи, похоже, исчезли.

Поначалу идея казалась достаточно простой.Я скопировал код с веб-страницы Google Tasks Service, которая должна «перечислить задачи в заданном списке задач» (https://developers.google.com/apps-script/advanced/tasks), и добавил один оператор if в цикле for:

function listTasks(taskListId) {
  var tasks = Tasks.Tasks.list(taskListId);
  if (tasks.items) {
    for (var i = 0; i < tasks.items.length; i++) {
      var task = tasks.items[i];

      Logger.log('Task with title "%s" and ID "%s" was found.',
                 task.title, task.id);

      if (task.status == "completed") {
          //perform operation
      }
    }
  } else {
    Logger.log('No tasks found.');
  }
}

Когда япроверил журналы, однако я заметил, что все незавершенные задачи были перечислены, но ни одна из моих завершенных задач не была перечислена. Я попытался запустить сценарий в списке задач только с завершенными задачами, и вывод журнала был «Задачи не найдены».

Кто-нибудь знает, как найти завершенные задачи в заданном списке задач? Кажется, что это должно быть возможно, исходя из того факта, что Zapier выполняет операции для выполненных задач, как описано в этом другом посте: Какзапускать Google Script, когда задача Google помечена как «выполненная»

Ответы [ 3 ]

0 голосов
/ 28 ноября 2018

У меня была такая же проблема.И я обнаружил, что я могу получить выполненные задачи с помощью API, если я выполню задачу с помощью старого пользовательского интерфейса задачи Google (https://mail.google.com/tasks/canvas).

). Как бы то ни было, я не могу получить их, если я выполню задачу с помощью нового пользовательского интерфейса Gmail.Как вы указали в комментарии, эта проблема может быть вызвана новым пользовательским интерфейсом Gmail.

0 голосов
/ 09 февраля 2019

Просто отправьте необязательные параметры в функцию:

var optionalArgs = {
    maxResults: 100,
    showHidden: true,
    showDeleted: true
  };
var tasks = Tasks.Tasks.list(taskListId, optionalArgs);
0 голосов
/ 27 ноября 2018

У меня тоже была эта проблема.Вам нужно сообщить API задач, что вы хотите, чтобы список задач также возвращал завершенные задачи.

Я нашел ответ здесь: https://developers.google.com/tasks/v1/reference/tasks

Я использовал PHP, и вы должны сказатьСервис Google, который вы хотите «скрытые» задачи.Кажется, что завершено == скрыто.Если вы хотите удалить, вы также можете отправить этот параметр.

$optParams = array(
    'showHidden' => true,
    'showDeleted' => true,
);

$GTresults = $service->tasks->listTasks($tasklist, $optParams);

Надеюсь, это поможет.

Отредактировано здесь: Добавлен пример цикла на основе выполненного:

$retrievedTask = $service->tasks->get($tasklist, $taskID);

if($retrievedTask->getStatus() == "completed") {
    echo "GT uncompleted", "\n";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...