Google Tasks API

Google TasksのAPIについて解説します。

Googleが提供するサービス

Googleアカウントにログインした状態で以下のURLにアクセスすると、それぞれのサービス向けのGoogle Tasksを利用できます。

対象 URL
iGoogleガジェット (ホーム ビュー) https://mail.google.com/tasks/ig
iGoogleガジェット (キャンバス ビュー) https://mail.google.com/tasks/canvas
モバイル https://mail.google.com/tasks/m
iPhone https://mail.google.com/tasks/iphone
Android https://mail.google.com/tasks/android

tasks/の部分をtasks/a/[ドメイン名]とすることでGoogle Apps版となります。

導入

Google Tasks APIを利用するには、

  1. Google アカウントの取得
  2. Google APIへのプロジェクトの登録

が必要となります。Write your First App: Prerequisites - Google Apps Platform | Google Developers

Google アカウントの取得

すでにGoogle アカウントをもっているならば、この手順は不要です。さもなくばGoogle アカウントで新しいアカウントを作成できます。

Google APIへのプロジェクトの登録

Googleにログインした状態で、Google APIs Consoleを開きます。

[Create project]をクリックして、新しいプロジェクトを作成します。

[Service]タブを開きます。そして[Tasks API]の[OFF]をクリックします。利用規約への同意を求められますので、[I agree to these terms. ]にチェックを入れて[Accept]をクリックします。

[API Access]タブを開きます。そして[Create an OAuth 2.0 client ID...]をクリックします。

Product nameを入力し[Next]をクリックします。

[Application type]がWeb applicationになっていることを確認し、[Create client ID]をクリックします。

[API Access]タブで作成したClient IDの[Edit settings]をクリックします。

Redirect URIを設定します。

Google Tasks APIで必要となる、「Client ID」「Client secret」「Redirect URIs」の項目をメモします。

サンプルの実行

PHPを利用するものとして解説します。

まずDownloads - Google Project Hostingから、Google APIs Client Library for PHPをダウンロードします。そしてそれを展開します。

展開したファイルに含まれる/google-api-php-client/examples/tasks/index.phpをエディタで開きます。24行目以降の次の箇所のコメントを外し、Google APIへのプロジェクトの登録で取得したClient ID、Client secret、Redirect URIsに書き換えます。

// $client->setClientId('insert_your_oauth2_client_id');
// $client->setClientSecret('insert_your_oauth2_client_secret');
// $client->setRedirectUri('insert_your_oauth2_redirect_uri');

google-api-php-clientフォルダの、exampleとsrcフォルダをサーバにアップロードします。

先ほど編集した/google-api-php-client/examples/tasks/index.phpのページをアップロード先で開くと、ログインしているユーザーのタスクリストのタイトルが一覧表示されます。

リクエスト

Task List (タスクの一覧)

https://www.googleapis.com/tasks/v1/users/userID/lists?parameters

レスポンス

Property Name Value Description
kind string リソースの種類。この値はつねに"tasks#taskList"
id string タスクリストのID
etag string リソースのETag
title string タスクリストのタイトル
selfLink string このタスクリストへアクセスするためのURL
updated datetime タスクリストの最終更新日時 (RFC 3339 タイムスタンプ)
Tasklists - Google Tasks API | Google Developers

Tasks (1つのタスクの情報)

https://www.googleapis.com/tasks/v1/lists/taskListID/tasks?parameters

レスポンス

Property Name Value Description
kind string Type of the resource. This is always "tasks#task".
id string Task identifier.
etag etag ETag of the resource.
title string Title of the task.
updated datetime Last modification time of the task (as a RFC 3339 timestamp).
selfLink string URL pointing to this task. Used to retrieve, update, or delete this task.
parent string Parent task identifier. This field is omitted if it is a top-level task. This field is read-only. Use the "move" method to move the task under a different parent or to the top level.
position string String indicating the position of the task among its sibling tasks under the same parent task or at the top level. If this string is greater than another task's corresponding position string according to lexicographical ordering, the task is positioned after the other task under the same parent task (or at the top level). This field is read-only. Use the "move" method to move the task to another position.
notes string Notes describing the task. Optional.
status string Status of the task. This is either "needsAction" or "completed".
due datetime Due date of the task (as a RFC 3339 timestamp). Optional.
completed datetime Completion date of the task (as a RFC 3339 timestamp). This field is omitted if the task has not been completed.
deleted boolean Flag indicating whether the task has been deleted. The default if False.
hidden boolean Flag indicating whether the task is hidden. This is the case if the task had been marked completed when the task list was last cleared. The default is False. This field is read-only.
links[] list Collection of links. This collection is read-only.
links[].type string Type of the link, e.g. "email".
links[].description string The description. In HTML speak: Everything between <a> and </a>.
links[].link string The URL.
Tasks - Google Tasks API | Google Developers