プライベートなTrelloの使い方

# プライベートなTrelloの使い方

みなさん、Trello使ってますか？
カンバンに慣れていないユーザも気軽に始められる、とてもいいソリューションですよね。

カンバンといえば、こんな感じの使い方が多いんじゃないでしょうか？
<img width="1125" alt="スクリーンショット 2019-11-05 21.27.38.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202097/a37cf94c-6e3d-2d21-524a-3bc7ddc4485e.png">

```
1. 担当の決まっていないタスクはbacklogに
2. 担当が決まればtasksに
3. タスクに着手したらdoingに
4. タスクが完了したらdoneに
```

あくまで一例ですが、仕事となるとこんな感じの使い方が多いんじゃないかなーと思います。
リストが状態を表し、カードがタスクを表す形ですね。

タスク管理としてとても便利なTrelloですが、
日常の（プライベートな）タスク管理として使った時に、とても幸福度が上がったので、その使い方を紹介します！！！



## プライベートでTrelloを使う

### 行きたいところリスト（旅行）として使う

<img width="845" alt="スクリーンショット 2019-11-05 21.19.24.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202097/d79b3b25-7164-2c60-9726-ce1e3475ae13.png">

※このボードの管理者ひとりになってますが架空のものですのでご了承ください。。

#### 使い方
使い方としては

```
1. 行きたいところ案（リスト）に行きたいところをため込む
2. ある程度目処が立ったら、行きたいところリスト内のカードをリストにする
3. スケジュールや持ち物などタスクとしてカードを入れていく
4. こんなところに行きたい！というイメージ画像があれば、カード化する。（画像を入れるとなおよし）
```

という感じでしょうか。

チェックリストもあるので持ち物管理できますし
<img width="575" alt="スクリーンショット 2019-11-05 21.19.36.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202097/03a8ac59-ffbb-2a9d-8e2d-e3f543b10fd5.png">

コメント欄があるので、行きたい場所ごと（など）に相談できて、
LINEとかで流れがちなこともちゃんと残るかなと。
<img width="572" alt="スクリーンショット 2019-11-05 21.39.53.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202097/3f563cb4-71fe-fb75-70e8-ed09e9c036f1.png">
※架空のボードなので、ひとりでコメントし合う寂しい画像になってますが・・・

#### いいところ

- 行きたい場所ごとに情報を一元管理できる（あちこち探す必要がない）
- やりとりが明確に残る（忘れない）
- 行きたい場所が具体的にイメージできる（これとても重要）

人間は、**ちょっと未来の幸せなこと**を想像すると、とても幸福度が上がると言われています。
ちょっと先の旅行計画を画像付きで眺めること、
またそれをタスク化して具体的な手順にしていくこと
これは私にとってはとてもワクワクする管理方法でした！


### 行きたいところリスト（食事）として使う
旅行だけじゃなくて、行ってみたいご飯屋さんとかでも十分使えそうですね！
<img width="831" alt="スクリーンショット 2019-11-05 21.50.52.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202097/447a0365-32a2-58e2-0f42-7859c3f147a2.png">


#### いいところ
- 気分に合わせて選べる！（リストがないと、食べたそうなところを思いつかなきゃいけない。。。）
- 画像があるので食べたいもののイメージがしやすい

### おまけ
Trello -> GAS -> LINENotifyを連携して、
「毎週末に、行きたいところボードの、まだ行っていないところリストからカードをランダムに取得し、週末の予定としてカードをサジェストするbot」を作ってみました。
<img width="262" alt="スクリーンショット 2019-11-05 21.56.22.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202097/cec5c3be-2e89-c6c9-b9b5-d154a86ac31c.png">

#### 作り方
##### [LINE notify](https://notify-bot.line.me/ja/)にログインし、アクセストークンを発行する
  
わかりづらいですが、右上の自分のアカウント名をクリックするとマイページが選べるのでそこから

<img width="218" alt="スクリーンショット 2019-11-05 21.57.38.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202097/3a4995a6-a0dc-cf6a-3bf0-5137a736bcbe.png">

トークンを発行
<img width="962" alt="スクリーンショット 2019-11-05 21.58.45.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202097/ffc012a6-6fa3-591d-fca3-9a7286250860.png">

名前とメッセージの送信先を決めて
<img width="521" alt="スクリーンショット 2019-11-05 21.59.24.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202097/81d50f8b-da7c-ab6f-3b29-9d536c3fa4de.png">

発行するボタンから発行。
このトークンはなくすと再度作らないといけないので、きちんとメモを残す。
<img width="513" alt="スクリーンショット 2019-11-05 21.59.32.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202097/281b593e-db1e-f2c2-068a-fd6b23579d73.png">

##### GASを作成してTrelloから情報を取得し、Line Notifyにメッセージを送信する

適当なスプレッドシート を作成して ツール→スクリプトエディタを開きます。

<img width="647" alt="スクリーンショット 2019-11-05 22.04.11.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202097/2398dbb2-2b6a-626b-c70b-0b83256f62a9.png">

で、そこにこのへんのコードを**ドーン！！！！**
参考記事
[Trello→GAS](https://qiita.com/RYOSUKE310/items/016549922a17376efdf8)
[GAS→LINE](https://qiita.com/RYOSUKE310/items/016549922a17376efdf8)

```javascript
/**
 * 参考
 * https://qiita.com/RYOSUKE310/items/016549922a17376efdf8
 * https://qiita.com/yasushiito/items/dfa80dd934e44231f294
 **/

var LINE_TOKEN = PropertiesService.getScriptProperties().getProperty("LINE_API_TOKEN");
var TRELLO_KEY = PropertiesService.getScriptProperties().getProperty("TRELLO_KEY");
var TRELLO_TOKEN = PropertiesService.getScriptProperties().getProperty("TRELLO_TOKEN");

function getBoardId() {
  var userName = "";//ユーザ名を入力してください
  var url = 'https://trello.com/1/members/' + userName + '/boards?key=' + TRELLO_KEY + '&token=' + TRELLO_TOKEN + '&fields=name';
  res = UrlFetchApp.fetch(url, {'method':'get'});
  Logger.log(res);
}

function getListId() {
  var url = "https://trello.com/1/boards/" + boardId + "/lists?key=" + TRELLO_KEY + "&token=" + TRELLO_TOKEN + "&fields=name";

  res = UrlFetchApp.fetch(url, {'method':'get'});
  Logger.log(res);
}
//
function getCard() {
  var TRELLO_LIST_ID = PropertiesService.getScriptProperties().getProperty("TRELLO_LIST_ID");
  var url = "https://api.trello.com/1/lists/" + TRELLO_LIST_ID + "/cards?key=" + TRELLO_KEY + "&token=" + TRELLO_TOKEN + "&fields=name,url";

  res = UrlFetchApp.fetch(url, {'method':'get'});
  return JSON.parse(res.getContentText());
}

function pushTrelloCardToLine() {
  var list = getCard();

  var num = Number(Math.floor((Math.random() * 1000) % list.length));
  var item = list[num];
  var msg = "\nこんばんは！トレロから通知します！\nもし今週末の予定がないのであれば、「" + item.name + "」に行くのはどうでしょうか？\n" + "URL:" + item.url
  postUpdateStatus(msg)
}

// メッセージを LINE する
function postUpdateStatus(message) {
  var res = null;
  var options = {
    "method": "post",
    "payload": "message=" + message,
    "headers": {"Authorization" : "Bearer "+ LINE_TOKEN}
   };
  res = UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
  return res;
}

```

実際に使うのは 
- pushTrelloCardToLine
- getCard
- postUpdateStatus

です。
getCardで使う、TRELLO_LIST_IDを得るために、
getBoardIdとgetListIdを使ってください。
TRELLO_LIST_IDは、backlog的なリストを選択してくださいね。
Doneなイベントを選んでもしょうがないので。

で、各種tokenはここに設定します。
<img width="319" alt="スクリーンショット 2019-11-05 23.24.26.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202097/a46d9112-6416-faee-040c-f3938f5a47ea.png">

ここまででpushTrelloCardToLineを実行すると、Lineにメッセージが届くことを確認できればOKです。

#### 毎週末にpushTrelloCardToLineを起動する
トリガー設定をします。linuxでいうところのcronですね。

スクリプトエディタから、編集→現在のプロジェクトのトリガーを選択します。

<img width="376" alt="スクリーンショット 2019-11-05 23.26.23.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202097/6da938ba-b94a-7968-8c29-85abae77505e.png">

右下にある、トリガーを追加を選択します。
<img width="1386" alt="スクリーンショット 2019-11-05 23.27.29.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202097/04f92c3f-3248-ef61-7284-5a573b8e8737.png">

あとは簡単ですね。
実行する関数を pushTrelloCardToLine にして、
デプロイはHeadのまま。（変更できなかった）
イベントのソースを時間主導型にして
時間ベースのトリガーのタイプを 週ベースのタイマーに。（ここらへんはお好きにどうぞ）
そして　毎週金曜日、時間を20時〜21時にすれば完了です。
<img width="720" alt="スクリーンショット 2019-11-05 23.28.36.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202097/a4317dd0-5ad6-63f1-f7c1-d354463156d7.png">

あとはタイマーが起動するのを待つだけですね。

## 終わりに
イメージしやすいと思うので記載はしませんが、
最近は買いたいものボード（店舗別リストを作成）が生まれました。
購入したら購入済みラベルを貼って、再利用できるようにしています。

みなさんもTrelloのいい使い方があれば、是非共有していただければ幸いです。

よいTrelloライフを！！