asanaのAPIをたたいて新規タスクを登録するコードの例です
TOKENの取得方法はhttps://asana.com/guide/help/api/apiに記載されているように
My Profile Settings...→Apps→Manage Developer Apps→Create New Personal Access Token
で取得できます
WORKSPACE_IDはasanaにログインした状態で
https://app.asana.com/api/1.0/workspaces
を開くと取得できます
コード.gs
var TOKEN = "TOKEN";
var END_POINT = "https://app.asana.com/api/1.0/tasks";
var WORKSPACE_ID = "ID";
var PROJECT_ID = "ID";
var TAG1 = "ID";
var TAG2 = "ID";
function POST_to_asana() {
var headers = get_headers();
var email = get_email();
var payload = get_payload(email);
var options = get_options(headers, payload);
var response = UrlFetchApp.fetch(END_POINT, options);
var jobj = JSON.parse(response);
var task_id = jobj["data"]["id"];
Logger.log([jobj, task_id.toString(10)]);
}
function get_headers() {
var headers = {
"Authorization": "Bearer " + TOKEN
}
return headers;
}
function get_email() {
return Session.getActiveUser().getEmail();
}
function get_payload(email) {
var followers = [email];
var title = "TITLE";
var detail = "created_by: " + email + "\n\n" + "DETAIL";
var tags = [TAG1, TAG2];
var data = {
"data": {
"workspace": WORKSPACE_ID,
"projects": [PROJECT_ID],
"name": title,
"notes": detail,
"followers": followers,
"tags": tags
}
}
var json = JSON.stringify(data);
return json;
}
function get_options(headers, payload) {
var options = {
"method": "post",
"contentType": "application/json",
"headers": headers,
"payload": payload,
"muteHttpExceptions": true
}
return options;
}
|
意訳TOKENを設定する END_POINTを設定する WORKSPACE_IDを設定する PROJECT_IDを設定する TAG1のIDを設定する TAG2のIDを設定する この機能がやること get_headers()からheadersを取得して get_email()からemailを取得して get_payload()にemailを渡してpayloadを取得して get_options()にheaders,とpayloadを渡してoptionsを取得して END_POINTにoptionsを付けてfetchする responseをJSON.parseして task_idを取得(指数表記で返ってくるので10進数の文字列にしてみる) jobjと作成したtask_idをログに出す この機能がやること headersを作成して TOKENを入れて 返す この機能がやること アクティブユーザのemailを取得して返す この機能がやること 渡されたemailをfollowersに入れて タイトルを設定して 詳細を設定して タグを設定して dataオブジェクトを作って WORKSPACE_IDを入れて PROJECT_IDを入れて nameにタイトルを入れて notesに詳細を入れて followersを入れて tagsを入れて JSONに変換して 返す この機能がやること optionsのオブジェクトを作って methodはpostにして contentTypeはapplication/jsonにして headersを入れて payloadを入れて muteHttpExceptionsをtrueにして(fetchでエラーが出ても例外を投げない) 返す |
参考
asana
https://asana.com/guide/help/fundamentals/about-asana
CREATE A TASK
https://asana.com/developers/api-reference/tasks#create
Personal Access Token
https://asana.com/developers/documentation/getting-started/auth#personal-access-token
TOKEN取得方法
My Profile Settings...→Apps
→Manage Developer Apps→Create New Personal Access Token
https://asana.com/guide/help/api/api
asana
https://asana.com/guide/help/fundamentals/about-asana
CREATE A TASK
https://asana.com/developers/api-reference/tasks#create
Personal Access Token
https://asana.com/developers/documentation/getting-started/auth#personal-access-token
TOKEN取得方法
My Profile Settings...→Apps
→Manage Developer Apps→Create New Personal Access Token
https://asana.com/guide/help/api/api