そーだいなるらくがき帳

そーだいが自由気侭に更新します。

Google SpreadsheetからTrelloに自動登録する。

GoogleSpreadsheetに定期的に登録したいタスク一覧を書いておくとGoogle Apps Scriptで自動登録されるようにした。
GASをチョイスした理由は2つ。

GASを使ったので一覧管理はスプレッドシートしたとも言える。
スプレッドシートだとそれなりにセキュアな環境で簡単にチームに共有出来るのもメリットだし、メンテナンスがエンジニア以外でも出来るってのがメリット。
細かいところはチームのフローに合わせて調整するとそれなりに使えるんじゃないかな。
ちなみにGASは下記のような時間トリガーで実行できる

  • 指定日時
  • 毎日の指定の時間
  • 毎週の指定曜日と指定日時
  • 毎月の指定の日時

なのでそれ毎にスプレッドシートのシートを作ってGASもそれぞれ作る想定。
あんまり作り込みすぎると設定が煩雑になるし、シンプルの方がGASの時間トリガーはメソッド単位で呼べるから楽だなって感じでこの仕様にしてる。

使い方はスプレッドシート作ってこんな感じにシートを作る。
ラベルIDやリストIDをTrelloから毎回直接取りに行くのはリクエスト回数が増えて良くないなって感じだったので一覧を別のシートにしてラベル名やリスト名を使ってVLOOKUP()でIDを引っ張ってくる運用した。

f:id:Soudai:20171002015436p:plain

シートをそれっぽく作ったら次はスクリプトの登録。
ツール→スクリプトエディタでこのスプレッドシートに紐付いたGASのページに行ける。

f:id:Soudai:20171002015723p:plain

そしたらそこに下記のコードを埋める。

下記の部分は自分のスプレッドシートに合わせて修正して。

  var sheet = spreadsheet.getSheetByName('毎週月曜日');
  var range = sheet.getRange('B7:G24');

あとは環境変数の登録。
GASのファイル→プロジェクトのプロパティ→スクリプトのプロパティに環境変数を登録する。
下記の変数を登録する。

var trelloKey = scriptProp.TRELLO_API_KEY;
var trelloToken = scriptProp.TRELLO_TOKEN;
var username = scriptProp.TRELLO_USERNAME;
var trelloBaseURL = scriptProp.TRELLO_BASE_URL;

TRELLO_BASE_URL は https://trello.com/1/ になる。
それ以外については大本になってる下記のページを見ると全部乗ってる。
そもそも上記のスクリプトの9割位は下記のQiitaのコードなので詳しくは下記のQiitaを見ると全てわかるはず。
実際に自分も下記のQiitaにスプレッドシートの連係部分を書いただけに過ぎない。

qiita.com

似たような事はIFTTTとかでも出来るのだけど個人で使うにしても便利そうなのでお裾分け。