Trello API を叩いてカードを作成する方法(curl利用)

  • 106
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

「Trello API を叩いてカードを作成する」という基本的なことをしてみたかったので,原始的に curl を利用して流れを確認して手順にまとめました.

アクセスのための準備

API Key の取得

ここにアクセスします

https://trello.com/1/appKey/generate

すると Key: というボックスがあると思いますのでその値をコピーします.

API Token の取得

今回は,期限無制限でRead/Write権限のついたトークンを取得します.
下記のURLをブラウザで開きましょう

https://trello.com/1/authorize?key=<上で取得したKey>&name=&expiration=never&response_type=token&scope=read,write

するとこんな感じの画面が開かれるので Allow しましょう

Auth

Allow すると下記のようにシンプルなページが表示されるのでキーをコピーします.

You have granted access to your Trello information.

To complete the process, please give this token:

  <ここにキーが表示される>

Trello のエンティティ関係

A ---> B を AとBが1対多の関係としたときに次のようなエンティティ関係のようです.

Member ---> Board ---> List ---> Card

つまりカードを投稿するには,次の順で情報を取得していく必要があります.

  1. 投稿したい Board の ID を取得する
  2. 投稿したい List (Todo, Do, Done など) の ID を取得する
  3. Card を投稿する

1. Board の ID を取得する

curl "https://trello.com/1/members/<username>/boards?key=<Key>&token=<Token>"

で取得することができます.
しかしこれだけだと大量のデータに埋もれてIDを取得できないので,APIの機能にあるフィルタをかけてみましょう.

$ curl "https://trello.com/1/members/<username>/boards?key=<Key>&token=<Token>&fields=name"

返却値を整形して見ると

[
    {
        "name": "Welcome Board",
        "id": "XXXXe2eaed887e7c007d46"
    },
    {
        "name": "test",
        "id": "XXXXc321d57991e7312a7d4"
    }
]

てな感じで Board IDを取得できました.

2. List の ID を取得する

Board一覧と同様にListの一覧を取得しましょう.

$ curl "https://trello.com/1/boards/<BoardのID>/lists?key=<Key>&token=<Token>&fields=name"

結果はこんな感じです.あと一息!

[
    {
        "id": "XXXXXX57991e731XXXXX",
        "name": "To Do"
    },
    {
        "id": "XXXXXXd57991e73XXXXXXX",
        "name": "Doing"
    },
    {
        "id": "XXXXXXXX57991eXXXXX",
        "name": "Done"
    }
]

3. カードを投稿する

カードを投稿しましょう!カードは様々な値を含んで投稿することができます.
詳しくは,post-1-cards の仕様書を参照ください.

今回はシンプルにタイトルのみのカードを投稿します.

curl -X POST "https://trello.com/1/cards?key=<Key>&token=<Token>&idList=< 2. で取得したリストのうち投稿したいリストのID>&name=カードタイトル"

きちんと登録されていました.

result

おわりに

今回は,Trello の API の使用方法について調査しました.
Trello にはたくさんのAPIが用意されているようなので,いろいろ活用したいですね.