Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
4
Help us understand the problem. What is going on with this article?
@blue_islands

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

More than 1 year has passed since last update.

みんな大好きのタスク管理ツール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/

4
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
blue_islands
自分の知りたいをカタチにしたり、自分の欲しいをカタチにするエンジニアマン。自社サービスを作ったり、受託開発をしています。 フルスタックで、自然言語、機械学習、ノビィとか、データ・ドリブンな人です。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
4
Help us understand the problem. What is going on with this article?