[Asana API]単体のタスクの絞り込み取得

AsanaAPIでスプレッドシート連携とタスク登録Asana API

どうも。ケニー(tsujikenzo)です。このシリーズでは「[Asana API]スプレッドシート連携でタスク登録をしよう」をお届けしています。

今日は3回目です。ちょっと短い内容です。

前回のおさらい

前回は、「単体タスクの取得と更新」をお届けしました。

ワークスペースやタスクの各GIDさえわかっていれば、エンドポイント(URL)のパラメーター(末尾)に追記すれば、タスクを取得できました。

まぁ厳密に言うとエンドポイントはURLではなく、URLはURIの一部なんですけどね。

REST APIにおけるURI(Uniform Resource Identifier)は、インターネット上のリソースを一意に識別するための文字列です。

エンドポイントはhttps://~という形なので、URLと呼んでいいと思います。

脱線しましたが、前回、単体タスクを取得したら、タスクの全情報が表示されて少々見辛かったです。これを解決します。

今回は、「単体のタスクの絞り込み取得」です。

今日のアジェンダ

  • クエリパラメーター
  • タスクの詳細を絞り込み指定する
  • クエリパラメーターを確認する
  • 単体タスクの詳細を絞り込む
  • opt_pretty

クエリパラメーター

単体タスクを取得するエンドポイントはこちらでした。

https://app.asana.com/api/1.0/tasks/{task gid}

これに、パラメーターとして、 ?opt_fildes= を付けることで、取得したい項目(○○○,▲▲▲などのカンマ区切り)を指定できます。

https://app.asana.com/api/1.0/tasks/{taskGid}?opt_fields=○○○,▲▲▲,◇◇◇◇

?(クエスチョン)から始まるのをみてもわかる通り、クエリ(問い合わせる、訪ねる)パラメーターと呼ばれています。

タスクの詳細を絞り込み指定する

どんな項目で絞り込み指定ができるかというのは、公式リファレンスのGet a taskの「QUERY PARAMS」で確認できます。

ADD STRINGをクリックします。 

リスト表示をクリックします。 

絞り込み指定したい項目を1つクリックします。今回は、担当者(assignee)をクリックします。 

同様に、completed(完了/未完了)とdue_on(期日)も選択しました。 

クエリパラメーターを確認する

クエリパラメーターを確認するには、右カラムの3点メニューをクリックし、JavaScriptをクリックします。 

サンプルコードの3行目に、クエリパラメーターを含むURLが表示されています。 

各項目が、カンマ区切りになっていることが確認できます。 

単体タスクの詳細を絞り込む

以下のコードを、別のスクリプトファイルに貼り付けましょう。

function getAsanaTaskDetails() {
  const accessToken = ACCESS_TOKEN; // グローバルエリアに記述されたアクセストークン
  const taskGid = TASK_GID; // グローバルエリアに記述されたタスクGID
  const url = 'https://app.asana.com/api/1.0/tasks/' + taskGid + '?opt_fields=assignee,completed,due_on';

  const options = {
    method: 'get',
    headers: {
      'Authorization': 'Bearer ' + accessToken
    },
    muteHttpExceptions: true // HTTP例外をミュートする(エラーレスポンスを取得するため)
  };

  try {
    const response = UrlFetchApp.fetch(url, options);
    const task = JSON.parse(response.getContentText());
    console.log(task);
  } catch (e) {
    console.log("Exception when calling TasksApi->get_task: " + e.toString());
  }
}

関数getAsanaTaskDetails()を実行すると、絞り込み指定された情報のみが表示されています。 

opt_prettyってなに?

opt_prettyは、Asana APIなどのREST APIを使用する際に、レスポンスのJSONデータを見やすく整形(pretty-print)して返すようにリクエストするためのクエリパラメーターです。 

このパラメーターをリクエストに含めることで、APIからの応答が、人間が読みやすい形式でフォーマットされます。

具体的には、改行やインデントが適用された形でJSONデータが返されます。By ChatGPT

もし、opt_pretty機能をONにしたばあいは、このようなURLになります。

const url = 'https://app.asana.com/api/1.0/tasks/' + taskGid + '?opt_fields=assignee,completed,opt_pretty=true';

JSONはただのテキストデータなので、本来は改行やインデントなどされていません。 

しかしながら、GASでは、opt_prettyを指定しなくてもエディター側の出力時にJSONを整形してくれていますので、指定不要です。

まとめ

以上で、「単体のタスクの絞り込み取得」をお送りしました。

短い内容でしたが、クエリパラメーターによるタスク情報の絞り込みは、プログラミングの効率化にも役立ちます。

単体タスクをの情報全体をガバっと取得して、assigneeでフィルター掛けして~という記述が省けますので。

次回は、「複数タスクの取得とフィルター掛け」をお届けします。お楽しみに。

このシリーズの目次

  1. [Asana API]Asana APIを利用する下準備
  2. [Asana API]単体タスクの取得と更新
  3. [Asana API]単体のタスクの絞り込み取得
  4. [Asana API]複数タスクの取得とフィルター掛け
  5. [Asana API]特定のプロジェクトやセクションにタスクを登録
  6. [Asana API]スプレッドシートとAsana準備編
  7. [Asana API]スプレッドシート設計とGASの下準備
  8. [Asana API]スプレッドシートクラス
  9. [Asana API]カスタムAsanaクラス
  10. [Asana API]グローバルとカスタムメニューとmain
タイトルとURLをコピーしました