asanaAPI

【GAS】asana APIをGASで操作する方法

少しasana APIを触る機会があったのでメモ…

Tokenの取得

My Profile Settings→Apps→Manage Developer Apps→Create New Personal Access Tokenで取得できます
参考:https://asana.com/ja/guide/help/api/api

基本的なコード

UrlFetchApp.fetchで渡している引数のURLを取得したい情報によって変えるだけです。(※URLの詳細は後述)

var SP = PropertiesService.getScriptProperties();
var TOKEN = SP.getProperty("TOKEN");
var URL = SP.getProperty("URL");

function getTask() {
    var data = getAsana(URL);
    Logger.log(data);
}
function getAsana(url) {
    var headers = getHeaders();
    var options = getOptions(headers);
    var url = url;
    var response = UrlFetchApp.fetch(url, options);
    var jobj = JSON.parse(response);
    var data = jobj["data"];
    return data;
}

function getHeaders() {
    var headers = {
        Authorization: "Bearer " + TOKEN,
    };
    return headers;
}

function getOptions(headers) {
    var options = {
        method: "get",
        contentType: "application/json",
        headers: headers,
        muteHttpExceptions: true,
    };
    return options;
}

目的別URL一覧

UrlFetchApp.fetchに渡すURLの一覧です。使用頻度が高そうなものをまとめました。
※asanaにログインした状態で開くと情報を確認できます。

目的 URL
ワークスペース一覧を取得する https://app.asana.com/api/1.0/workspaces
プロジェクト一覧を取得する https://app.asana.com/api/1.0/projects
プロジェクトを指定してタスク一覧を取得する https://app.asana.com/api/1.0/projects/project-id/tasks
プロジェクトを指定してセクション一覧を取得する https://app.asana.com/api/1.0/projects/project-id/sections
タスクを指定して更新履歴一覧を取得する https://app.asana.com/api/1.0/tasks/task-id/stories
タスクを指定してサブタスクを取得する https://app.asana.com/api/1.0/tasks/task-id/subtasks
タグ一覧を取得する https://app.asana.com/api/1.0/tags
ユーザ一覧を取得する https://app.asana.com/api/1.0/users
自分のユーザ情報を取得する https://app.asana.com/api/1.0/users/me
ユーザのタスクリスト情報を取得 https://app.asana.com/api/1.0/users/user-id/user_task_list?workspace=workspace-id
ユーザのタスクリストを取得 https://app.asana.com/api/1.0/user_task_lists/task-list-id/tasks

参考

API Reference

ABOUT ME
ytakeuchi
都内在住のフロントエンドエンジニア。2016年からフリーランスとして活動中。座右の銘は「昨日よりも楽に」。好きな言葉は「効率化」。こんな性格なのでプライベートではGoogle Apps Scriptばかり触っています。