如何在Google Task API中添加新任务

时间:2019-11-29 16:57:05

标签: php google-tasks-api google-tasks

我试图弄清楚如何使用Google任务API添加任务。这些文档需要大量调查,而我发现自己被困住了。这是我的代码:

// Get the API client and construct the service object.
$client = getClient();
$service = new Google_Service_Tasks($client);
...
... get token etc...
...
// Create a task
$task = new Google_Service_Tasks_Task();
$task->setTitle("Call mum");
$task->setNotes("Inserted by app");
$task->setStatus("needsAction");
$task->setDue(new DateTime('2020-01-01T00:00:01.000Z'));
// constructor needs 4 params: service, serviceName, resourceName, resource
$res = new Google_Service_Tasks_Resource_Tasks('', '', '', '');
$res->insert($lastListID, $task);

在创建新的Google_Service_Tasks_Resource_Tasks(倒数第二行)时,我需要向构造函数提供4个参数:service,serviceName,resourceName,resource。 我找不到任何说明最后三个参数的文档。我使用该类是因为它有一个insert方法,我认为那是我需要的方法。所有示例都停止列出任务(工作)。 我试图弄清楚这些文档:

我无法理解供应商目录中的实际类。 有谁知道如何驯服这个API?

1 个答案:

答案 0 :(得分:0)

我了解您想使用PHP Tasks API创建任务。您的方法是正确的,您只需要使用带有三个参数的构造函数,而不是四个。正如我们在Google_Service_Tasks_Resource_Tasks documentation上看到的,insert操作定义为:

  /**
   * Creates a new task on the specified task list. (tasks.insert)
   *
   * @param string $tasklist Task list identifier.
   * @param Google_Service_Tasks_Task $postBody
   * @param array $optParams Optional parameters.
   *
   * @opt_param string parent Parent task identifier. If the task is created at
   * the top level, this parameter is omitted. Optional.
   * @opt_param string previous Previous sibling task identifier. If the task is
   * created at the first position among its siblings, this parameter is omitted.
   * Optional.
   * @return Google_Service_Tasks_Task
   */
  public function insert($tasklist, Google_Service_Tasks_Task $postBody, $optParams = array())
  {
    $params = array('tasklist' => $tasklist, 'postBody' => $postBody);
    $params = array_merge($params, $optParams);
    return $this->call('insert', array($params), "Google_Service_Tasks_Task");
  }

该注释将三个参数定义为:

  1. 任务列表标识符。这是任务列表resource中定义的任务列表id
  2. 要创建的任务对象的内容,如代码中的内容。
  3. 包含两个元素的可选对象:
    1. 父任务标识符。该元素在resource文档中称为id。如果任务没有父任务,则可以省略此参数。
    2. 先前的同级任务。该元素与上一点相同,但引用列表的前一个元素。如果新元素是同级元素之间的第一个元素(或者它将是唯一的元素),则可以省略此参数。

根据您的代码变量,一个可行的示例将是:

$optParams = array("{PARENT TASK ID}", "{PREVIOUS TASK ID}");
$res = new Google_Service_Tasks_Resource_Tasks();
$res->insert($taskListID, $task, $optParams);

使用这种方法,您可以使用自己的方法创建任务。如有任何疑问,请随时要求进一步澄清。