LoginSignup
0
4

More than 3 years have passed since last update.

TrelloにJaveからAPIを使ってカードの起票や取得をしてみる

Last updated at Posted at 2020-02-19

みんな大好きのタスク管理ツールTrelloは、ユーザインタフェースが使いやすく、見てすぐ使いこなせます。

そのTrelloと自分の作っているサービスを連携するためにTrello APIを簡単に使えないかを調べたのでまとめてみました。

1.準備

APIを発行するには、IDやパスワードの代わりになるキーとトークンの取得が必要です。
これらをまず取得します。

Trelloにログインします。

https://trello.com/app-key

にアクセスします。すると、キーが表示されますので、これをメモします。

01.png

その後、「トークン」をクリックして、下記のような画面が表示されるので、「許可」をクリックします。

02.png

下記のようにトークンが表示されますので、これをメモっておきます。

03.png

このキーとトークンを使い、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/

0
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
4