Trello APIでカードを作成
Trelloを普段使用していますが、タスク用のカードの登録をTrelloまで飛ばずに、特定のリストにすぐに登録したいを思い、Trello APIを使って、作業を簡略化しました。
Trello APIのKeyとTokenを取得
Trello APIを使用するために、APIキーとTokenを取得します。
APIキーを取得するために、公式サイトにログインしておく必要があります。
APIキー取得
こちらから、APIキーを取得してください。
事前にログインしていないと以下のようなページが表示されます。
Torken取得
開発者向きAPIキーの画面の「トークン」をクリックしてください。
以下のページが表示されるので、「許可」をクリックしてください。
以下のページになり、赤枠にTokenが表示されています。
APIを使用してカードを作成
APIを使用してカードを作成します。
必要なIDは以下のとおりです。
- APIキー
- Token
- 追加したいリストのID
以下の順で説明していきます。
- カード作成のコード(今回のゴール)
- APIの使い方の説明
- リストIDの取得方法
今回のゴール(API実行)
最終的には以下のようにするとカードを作成することができます。
今回はカードの名前、説明欄、
curl -X POST "https://api.trello.com/1/cards?key={取得したAPIキー}&token={取得したToken}&idList={追加したいリストのID}&name=test&desc=explation&due=2022-04-05"
import requests
import json
KEY = {取得したAPIキー}
TOKEN = {取得したToken}
LIST_ID_DOING = {追加したいリストのID}
def create_card(cardname:str,desc:str,due:str):
url = 'https://api.trello.com/1/cards?key=' + KEY + '&token=' + \
TOKEN + '&idList=' + LIST_ID_DOING + '&name=' + cardname + '&desc=' + desc + '&due=' + due
response = requests.request(
"POST",
url
)
print(json.dumps(json.loads(response.text), sort_keys=True, indent=4, separators=(",", ": ")))
if __name__ == '__main__':
create_card(u'TrelloAPIについて書く',u'構成検討すること。','2022-04-03')
実行するとTrelloにカードが追加されます。
使用するTrelloAPIの説明
先ほどのPythonのコードからTrelloAPIについて説明します。
url = 'https://api.trello.com/1/cards?key=' + KEY + '&token=' + \
TOKEN + '&idList=' + LIST_ID_DOING + '&name=' + cardname + '&desc=' + desc + '&due=' + due
公式サイトにTrelloのAPIの説明があります。
公式サイトを参考にコマンドを作成します。
「POST /1/cards」がAPIになります。
「https://api.trello.com」の後ろに対象のAPI「/1/cards」をくっつけることによりURLを作成します。
指定できるパラメータを見ると「idList」が必要であることがわかります。
idListはカードを追加するリストのIDのことです。
各パラメータの意味は以下の通りです。
パラメータ名 | 説明 |
---|---|
key | 取得したAPIキー |
token | 取得したToken |
idList | 追加したいリストのID |
name | カードの名前 |
desc | カードの説明欄 |
due | 日にち (yyyy-mm-day形式) |
ListIDの取得
ここでは、追加したいリストIDの特定方法について説明します。
以下の手順でListIDを取得します。
- 追加したいリストが所属するボードIDを特定
- ボードに所属するリストの一覧を取得し、カードを追加したいリストIDを特定する
ボードIDの特定
以下のコードでボードIDを取得することができます。
import requests
import json
KEY = {取得したAPIキー}
TOKEN = {取得したToken}
url = 'https://trello.com/1/members/me/boards?key=' + KEY + '&token=' + TOKEN + '&fields=name'
response = requests.request(
"GET",
url)
print(json.dumps(json.loads(response.text), sort_keys=True, indent=4, separators=(",", ": ")))
実行すると以下のような結果が得られます。
「name」はボードの名前、「id」がボードIDとなります。
これで、追加したいボードが特定できました。
[
{
"id": "xxxx",
"name": "Board1"
},
{
"id": "xxxxxxxx",
"name": "Board2"
}
]
カードを追加するリストIDの特定
ボードIDが取得できたので、次にリストIDを特定します。
import requests
import json
KEY = {取得したAPIキー}
TOKEN = {取得したToken}
LIST_ID_DOING = {追加したいリストのID}
url = 'https://trello.com/1/boards/LIST_ID_DOING/lists?key=' + KEY + '&token=' + TOKEN
response = requests.request(
"GET",
url)
print(json.dumps(json.loads(response.text), sort_keys=True, indent=4, separators=(",", ": ")))
実行すると以下の結果が得られます。
「id」がカードを追加したいリストIDになります。
「name」はリストに付けている名前ですが、文字が日本語だと文字コードが表示されます。
{
"closed": false,
"id": "XXXXX",
"idBoard": "{追加したいリストのID}",
"name": "\uXXXX\uXXXX",
"pos": 102911,
"softLimit": null,
"subscribed": false
},
{
"closed": false,
"id": "xxxxxxxxxxxxxxxxxxx",
"idBoard": "{追加したいリストのID}",
"name": "TEST",
"pos": 105215,
"softLimit": null,
"subscribed": false
},
...
Discussion