スプレッドシートからTrelloカードを作成。ーチェックリストつきー


スプレッドシートからまとめてTrelloカードにチェックリストを作成したい

目次

1.はじめに
2.実装
3.動作
4.終わりに
5.参考文献

1. はじめに

Trelloのカード作成が面倒!一発で作成できるツールが欲しい!

優秀なタスク管理ツールの1つにTrelloがあります。

今回、Trelloカードの作成をGoogleスプレッドシートからまとめて行うことはできないかと調べたところ
こちらの記事で@naoqoo2さんがその方法を紹介されていました!

この方法では、カードの作成に伴いラベルの指定等も可能でしたが、チェックリストの作成はできなかったので、
今回スプレッドシートの情報からチェックリストを作成できるソースコードをGASで書いてみました。

2. 実装

実際のコードはこちらになります。
使い方としては、@naoqoo2さんのこちらの記事で紹介されていたコードに追加で2つの関数を作成しました。

add_checklist
function add_checklist(sheet,row, card_id){
 //チェックリスト作成
var checklist_column_no = 3;

//カードID取得
  url_checklist = 'https://trello.com/1/cards/'+card_id+'/checklists?key='+api_key+'&token='+api_token

  var options = {
      'method' : 'post',
      'muteHttpExceptions' : true,
      'payload' : {
        'name'      : 'チェックリスト',
      }
      }

   var response = UrlFetchApp.fetch(url_checklist,options);
   var responceJson = JSON.parse(response.getContentText());
   //チェックリストのidを記録
   check_id = responceJson['id']

  //チェックアイテム作成
  listitems = sheet.getRange(row, checklist_column_no).getValue();
  items = fetchitem(listitems)

  url_item = 'https://trello.com/1/cards/'+card_id+'/checklist/'+check_id +'/checkitem?key='+api_key+'&token='+api_token
    for (var j = 0; j < items.length;j++){
    var options = {
      'method' : 'post',
      'muteHttpExceptions' : true,
      'payload' : {
        'name'      : items[j],
      }
      }

   var response = UrlFetchApp.fetch(url_item,options);

    }
}
fetchitem
function fetchitem(a){
let splititem = a.split("\n");
return splititem;
}

TrelloのAPIを調べたところ、カード作成が可能なAPI Create a new Card ではチェックリストを作成することは不可能のようでした。
TrelloのAPI一覧

ですが、他のAPIに
チェックリストを作成する Create a Checklist
チェックアイテムを作成する Create Checkitem on Checklist
がありましたので、今回はこれらのAPIを利用しました。

手順としては、

1. Create a Checklist でカードを作成
2. Create a Checklist で作成したカードにチェックリストを作成
3. Create Checkitem on Checklist で作成したチェックリストにチェックアイテムを作成

という流れになります。(1のカード作成は参考記事にて実装されていた部分です。)


実際にこれらの作成を組み込む際は、参考記事であったソースコードのカード作成部分に以下のよう追加します。

追加部分
//省略

 var response = UrlFetchApp.fetch(url, options);
    // 作成したカードのURLをセルに出力したい場合は下記コメントアウトはずしてよしなに。
     var response_data = JSON.parse(response.getContentText());
    // sheet.getRange(row, 3).setValue(response_data['shortUrl']);

    //ここからhayaball追加
    card_id = response_data['id']

    add_checklist(sheet,row,card_id);
  }
}

3. 動作

こちらのようにスプレッドシートを作成して2枚のTrelloカードを作成してみました!

しっかりチェックリストを作成することができました。

4. 終わりに

今回スプレッドシートからTrelloカードを作成すると同時にチェックリストを作成することができるようになりました。

TrelloのAPIにはその他色々な機能があったので、更に使いやすくスプレッドシートと連携できる余地がありそうです。

5. 参考文献

スプレッドシートからTrelloにカード追加する(任意の行だけ選択可能)

The Trello REST API