みなさん、こんにちは!うえはら(@tifoso_str)です。
最近、Trelloに関する記事を書いていますが、みなさんTrello使ってますか?
1週間、1ヶ月のToDoカードを作成して、予定を把握されている方もいるのではないでしょうか?
そんな方には、毎週、毎月決まって作成するカードがあると思います。
この作業を自動化できたら便利じゃないですか?!効率も上がりますよね?!
そこで今回より、「スプレッドシートとGASでTrelloのリストにカードを作成するツール」を作成していきます。
はじめに
まずはじめに、今回のシリーズでどのようなものを作成するかご説明します。
下記のようにスプレッドシートを用意します。
- ①の「ボード取得」を実行すると、「board」シートにボード名とボードIDが取得されます。
- 次に②で作成するボードを選択します。
- ③の「リスト・メンバー取得」を実行すると、「list」と「member」シートにそれぞれのリスト名メンバー名とIDが取得されます。
- その後④で作成するリストと、タイトル、担当者、期限を設定します。
- ⑤の「カード作成」を実行すると、Trelloにカードが作成されます。
今回の記事では、いきなりですが「GASでスプレッドシートの値をタイトルにしたTrelloのカードを作成する」方法をお伝えします。
Trelloのリストにカードを作成する
まずは単純に、指定のリストにカードを作成します。
カードを新規作成するURLは下記となります。
TrelloのTokenやKeyは前回のシリーズと同じようにプロパティーサービスを利用します。
スクリプトは下記のようになります。
function createCard() { var scriptProperties = PropertiesService.getScriptProperties(); const Trello_KEY = scriptProperties.getProperty('Trello_KEY'); const Trello_TOKEN = scriptProperties.getProperty('Trello_TOKEN'); const BOARD_ID = scriptProperties.getProperty('BOARD_ID'); const LIST_ID = scriptProperties.getProperty('LIST_ID'); var URL = 'https://api.trello.com/1/cards/'; var payload = {'key':Trello_KEY, 'token':Trello_TOKEN, 'idList' : LIST_ID}; var option = {'method':'POST', 'payload':payload}; UrlFetchApp.fetch(URL,option); }
この関数を実行すると、指定したリストに空のカードが作成されます。
前回のシリーズをご覧の方は、うすうすお気付きかもしれませんが、payloadに項目を設定することでカードのタイトルや担当者を追加することが出来ます。
カードのタイトルや担当者を追加して新規にカードを作成
カードを作成するときに指定できる項目
カードを作成するときに指定できる主な項目は下記となります。
- name (カードのタイトル)
- desc (カードの説明)
- due (期限)
- idMembers (担当者のID)
- idLabels (ラベルのID)
太字の項目を今回は指定します。
項目を追加したスクリプト
下記はシリーズで使用する、カードのタイトル、担当者、期限を追加したpayload部分のスクリプトです。
var payload = {'key':Trello_KEY, 'token':Trello_TOKEN, 'idList' : LIST_ID, 'name' : "カードのタイトル", 'idMembers': "担当者ID", 'due': "期限"};
keyやtokenと同じように記述すれば大丈夫です。
後は、それぞれの項目をスプレッドシートから取得すればO.K.ですね!
スプレッドシートから値を取得してTrelloのカードを新規作成
それでは、スプレッドシートの値を取得して、Trelloにカードを新規作成するスクリプトです。
※今回はスプレッドシートの担当者の欄にメンバーIDが入力されている前提とします。
function createCard() { var scriptProperties = PropertiesService.getScriptProperties(); const Trello_KEY = scriptProperties.getProperty('Trello_KEY'); const Trello_TOKEN = scriptProperties.getProperty('Trello_TOKEN'); const LIST_ID = scriptProperties.getProperty('LIST_ID'); var URL = 'https://api.trello.com/1/cards/'; var sheetCard = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('card'); var lastRow = sheetCard.getLastRow(); var cardsInfo = sheetCard.getRange(5, 1, lastRow - 4, 3).getValues();//カード情報を配列に追加 for (var i=0 ; i<cardsInfo.length ;i++){ var payload = {'key':Trello_KEY, 'token':Trello_TOKEN, 'idList' : LIST_ID, 'name' : cardsInfo[i][0], 'idMembers': cardsInfo[i][1], 'due': cardsInfo[i][2],}; var option = {'method':'POST', 'payload':payload}; UrlFetchApp.fetch(URL,option); } }
payloadで指定している、name,idmembers,dueをスプレッドシートから取得しています。
カードの作成を繰り返し実行することで、複数のカードを作成します。
まとめ
今回は、「GASでスプレッドシートの値をタイトルにしたTrelloのカードを作成する」方法をお伝えしました。
前回のシリーズでお伝えした、カードを一枚づつアーカイブする方法と同じ感じなので、こちらの記事も併せてご覧下さい。
それでは、次回はボード情報を取得して、ツールらしくボード名をリスト選択していきます。
どうぞお楽しみに!
連載目次:スプレッドシートとGASでTrelloにカードを作成するツール
毎週、毎月Trelloに同じカードを作成している方必見です。 スプレッドシートとGoogle Apps Scriptを使用して、Trelloにカードを作成するツールを作成します。