みんな大好きのタスク管理ツールTrelloは、ユーザインタフェースが使いやすく、見てすぐ使いこなせます。
そのTrelloと自分の作っているサービスを連携するためにTrello APIを簡単に使えないかを調べたのでまとめてみました。
1.準備
APIを発行するには、IDやパスワードの代わりになるキーとトークンの取得が必要です。
これらをまず取得します。
Trelloにログインします。
https://trello.com/app-key
にアクセスします。すると、キーが表示されますので、これをメモします。
その後、「トークン」をクリックして、下記のような画面が表示されるので、「許可」をクリックします。
下記のようにトークンが表示されますので、これをメモっておきます。
このキーとトークンを使い、APIを発行してTrelloにカード起票などを行ないます。
2.Javaのラッパーのライブラリを利用する
Githubにtrello-java-wrapperというライブラリがあるので、そちらを利用します。
GithubのページにはGradleで記載されていますが、Mavenにもありますので、こちらを利用します。
<!-- https://mvnrepository.com/artifact/com.taskadapter/trello-java-wrapper -->
<dependency>
<groupId>com.taskadapter</groupId>
<artifactId>trello-java-wrapper</artifactId>
<version>0.13</version>
</dependency>
まず、TrelloImplのインスタンスを作成します。この例では、Apache Httpライブラリに基づいたhttpクライアントを使用しています。
Trello trelloApi = new TrelloImpl(trelloKey, trelloAccessToken, new ApacheHttpClient());
- trelloKey:Trelloで認証されたユーザーのoauthトークン。
- trelloAccessToken:Trelloで認証されたユーザーのoauthトークン。
- ApacheHttpClient:サポートされているhttpクライアントの1つ。
※com.julienvey.trello.impl.httpのパッケージを参照してください。
ちなみに以下のようなエラーが発生する場合は、
Exception in thread "main" java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/exc/InputCoercionException
Mavenで「com.fasterxml.jackson.core」を追加すると直るかと思います。
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.10.2</version>
</dependency>
3.ボードの一覧を取得する
まずは、ボードの一覧取得はこうなります。
メンバーIDの指定を"me"と記載すると自分自身のボードがすべて取得できます。
List <Board> boards = trelloApi.getMemberBoards("me", new Argument("fields", "name"));
パラメータに以下を指定しているのは、ボード名が取得できないので、指定する必要があります。
new Argument("fields", "name")
4.リストとカードの一覧を取得する
こちらがボード内のリストを取得する方法になります。
List <TList> lists = trelloApi.getBoardLists(boardId);
- boardId:取得したボードIDを指定。
こちらがリスト内のカードを取得する方法になります。
List <Card> cards = trelloApi.getListCards(listId);
- listId:取得したリストIDを指定。
ちなみにこんな感じでコーディングするとすべてのカードが取得できたりします。
List <Board> boards = trelloApi.getMemberBoards("me", new Argument("fields", "name"));
for (Board board : boards) {
board.getName();
board.getId();
System.out.println(board.getId() + ":" + board.getName());
List <TList> lists = trelloApi.getBoardLists(board.getId());
for (TList list : lists) {
System.out.println(list.getId() + ":" + list.getName());
List <Card> cards = trelloApi.getListCards(list.getId());
for (Card card : cards) {
System.out.println(card.getId() + ":" + card.getName());
}
}
}
5.カードを起票する
カードを起票する場合はこのように記載します。
Card card = new Card();
card.setName("あいうえお");
card = trelloApi.createCard(listId, card); // 登録
card.addComment("コメントを記載");
card = card.update(); // 更新
card.delete(); // 削除
- listId:取得したリストIDを指定。
新規でカードを登録する場合はcreateCardでカードを作成して、更新する場合はupdate、削除の場合はdeleteを指定します。
6.終わりに
trello-java-wrapperには、一通りのAPIの呼び出しに対応していますので、簡単にJavaからTrelloのAPIを呼び出すことができます。
もし、Trelloをお使いでしたら試してみてはいかがでしょうか。
以下、参考サイト
https://became-free.com/how-to-use-trello-api/
http://blog.serverworks.co.jp/tech/2016/05/16/trello-api/