目標を立てているみなさん、進捗出ていますか?
私はTrelloのチェックリストを使って進捗を把握しています。今回はチェックリストに大量の項目を追加する必要があったので、TrelloのAPIを利用してチェックリストを作成する方法をまとめました。
[事前準備]
準備1:カードを作成する
Trelloにログインし、チェックリストを追加するためのカードを作成します。
カードを作成したら、カードをクリックします。すると、下の画像のようにURLがhttps://trello.com/c/(カードID)/(カード名)
のようになります。
このカードIDをあとで利用するので、メモしておきます。
カードにはチェックリストを作成しておきます。
準備2:APIキーを取得する
Trelloにログインしているブラウザで、https://trello.com/1/appKey/generateにアクセスすると、下のようにキーが表示されるので、こちらもメモしておきます。
また、上の画面の「手動でトークンを生成できます。」の「トークン」と書かれた部分をクリックすると、下のようにトークンが表示されるので、こちらもメモしておきます。
準備3:チェックリストのIDを取得する
チェックリストのIDを取得する方法はいくつかありますが、ここではTrelloの開発者サイトのサンドボックスを利用します。
下のURLにアクセスし、「Try It」ボタン左の人型アイコンをクリックし、先ほど準備2で取得したキーとトークンを入力します。
https://developers.trello.com/reference/#cardsidchecklists
同様に、PATH PARAMSのID欄に、準備1でメモしておいたカードIDを入力し、「Try It」ボタンをクリックします。
緑の丸と200 OKの文字列が表示されたら成功です。
右側のレスポンス欄に記録されているID(ここでは5ca...の文字列)がチェックリストのIDです。これをメモしておきます。
[チェックリストに複数項目を追加する]
APIを呼び出すためのシェルスクリプト(checklist.sh)と、追加するアイテムのデータ(data.txt)を同じディレクトリに用意します。
$ ls checklist.sh data.txt
checklist.sh
#!/bin/bash DATA=`cat ./data.txt` while read line do curl --request POST \ -d pos=bottom \ -d checked=false \ -d "key=$TRELLO_KEY" \ -d "token=$TRELLO_TOKEN" \ --data-urlencode "name=$line" \ --url "https://api.trello.com/1/checklists/$TRELLO_CHECKLIST/checkItems" done << FILE $DATA FILE
data.txt
ひとつめの項目 ふたつめの項目 みっつめの項目
実行する際は、以下のように準備でメモしておいた項目を環境変数に設定して実行します。(もちろん、シェルスクリプトを直接編集しても実行できます。)
# 準備2でメモしたキーとトークンを設定する(ファイル直接編集の場合は実行不要) $ export TRELLO_KEY=XXXXXX $ export TRELLO_TOKEN=YYYYYY # 準備3でメモしたチェックリストのIDを設定する(ファイル直接編集の場合は実行不要) $ export TRELLO_CHECKLIST=ZZZZZZ # シェルスクリプトを実行する $ bash ./checklist.sh {"idChecklist":"5ca38797ca69ad3a92394bc3","state":"incomplete","id":"5ca39215006f7925ce924e06","name":"ひとつめの項目","nameData":{"emoji":{}},"pos":65536,"limits":{}}{"idChecklist":"5ca38797ca69ad3a92394bc3","state":"incomplete","id":"5ca39215e4453410380b6f0f","name":"ふたつめの項目","nameData":{"emoji":{}},"pos":81920,"limits":{}}{"idChecklist":"5ca38797ca69ad3a92394bc3","state":"incomplete","id":"5ca39216234fab740c9ceb4d","name":"みっつめの項目","nameData":{"emoji":{}},"pos":98304,"limits":{}}
シェルスクリプトの実行後、ブラウザやアプリでチェックリストを確認すると、以下のように項目が追加されています。
[実例:Rustを学ぶ]
今回作成しようとしていたのは、プログラミング言語Rustを実例ベースで学べるチュートリアルのチェックリストです。目次の項目が180あるため、流石に手作業でコピペしてチェックリストを作成していくのは無理だな……と考え、Trello APIを利用したシェルスクリプトを作成しました。
実際に作成したチェックリストがこちら。長すぎて全体のスクリーンショットを撮れない……。
[まとめ]
チェックリスト作ったし、Rustやっていくぞ。