Trello

Trello APIで自動化する方法:認証取得からNode.js・Pythonサンプルまで

ⓘ本ページはプロモーションが含まれています

スポンサードリンク

1. Trello API の全体像と公式ドキュメント

項目 内容
ベース URL https://api.trello.com/1
認証方式 ・API キー + トークン(シンプル)
・OAuth 2.0 認可コードフロー(推奨)
主要リソース Boards、Lists、Cards、Members、Actions など
公式ドキュメント https://developer.atlassian.com/cloud/trello/rest/

ポイント
まずは「エンドポイント構造」と「認証方式」を把握し、公式リファレンスでパラメータやレスポンス例を確認しましょう。


2. 認証・認可

2‑1. API キー & トークン取得手順(個人利用向け)

  1. 開発者ページ (https://trello.com/app-key) にアクセスし、API Key をコピー。
  2. 同ページの「Token を生成」ボタンをクリックし、必要な権限(read, write 等)を選択 → Token が表示されるのでコピー。
  3. 取得した KeyToken はローカル環境では .env ファイル、CI 環境ではシークレット変数に保存する。


2‑2. OAuth 2.0 認可コードフロー(チーム利用・高度な権限管理向け)

フローチャート

実装ステップ(Node.js/Express)

※ 前提
client_idclient_secret は Trello の開発者コンソールで取得。
リダイレクト URI は Trello コンソールに登録済みのものを使用。

  1. 認可リクエスト URL を生成し、ユーザーへ誘導

js
// routes/auth.js
import express from 'express';
const router = express.Router();

const CLIENT_ID = process.env.TRELLO_CLIENT_ID;
const REDIRECT_URI = encodeURIComponent(process.env.TRELLO_REDIRECT_URI);
const SCOPES = encodeURIComponent('read,write');

router.get('/login', (req, res) => {
const authUrl = https://trello.com/1/OAuthAuthorizeToken?response_type=code&client_id=${CLIENT_ID}&redirect_uri=${REDIRECT_URI}&scope=${SCOPES};
res.redirect(authUrl);
});

export default router;

  1. コールバックエンドで認可コードをアクセストークンに交換

js
// routes/callback.js
import express from 'express';
import axios from 'axios';
const router = express.Router();

const CLIENT_ID = process.env.TRELLO_CLIENT_ID;
const CLIENT_SECRET = process.env.TRELLO_CLIENT_SECRET;
const REDIRECT_URI = process.env.TRELLO_REDIRECT_URI;

router.get('/oauth-callback', async (req, res) => {
const { code } = req.query;
if (!code) return res.status(400).send('Missing authorization code');

});

export default router;

  1. 取得したアクセストークンを API 呼び出しに付与

js
// utils/trelloClient.js
import axios from 'axios';
const BASE_URL = 'https://api.trello.com/1';

export function trelloRequest(method, path, token, params = {}, data = null) {
return axios({
method,
url: ${BASE_URL}${path},
headers: { Authorization: Bearer ${token} },
params: { ...params },
data,
});
}

参考リンク(公式情報)


3. エラーハンドリング & 再試行ロジック(指数バックオフ実装例)

3‑1. なぜ指数バックオフが必要か

状況 推奨対策
429 Too Many Requests Retry-After ヘッダーを確認し、最小待機時間以上の遅延を入れる。
5xx 系サーバエラー ネットワーク障害や一時的なサービス不安定を想定し、指数バックオフでリトライする。
タイムアウト (≥ 5 s) 同上。

3‑2. Node.js(axios)での実装例

使用例(自動アーカイブ)


4. シークレット管理と CI/CD 環境別設定例

4‑1. 基本方針

項目 推奨方法
ローカル開発 .envdotenv パッケージでロード
ステージング/本番 CI/CD のシークレット機能に格納し、環境変数として注入
最小権限 必要なスコープだけ付与(例: read,write
ローテーション 6か月ごとに新トークンを発行し、旧トークンは即削除

4‑2. GitHub Actions(既存)

4‑3. GitLab CI/CD

4‑4. Azure Pipelines

4‑5. Bitbucket Pipelines


5. 言語別サンプルコード(認証・エラーハンドリング含む)

5‑1. Node.js (axios + exponential backoff)

5‑2. Python (requests + backoff library)

5‑3. PowerShell (Invoke-RestMethod + exponential backoff)


6. 実務で役立つスクリプト集

6‑1. 【自動アーカイブ】5 日以上更新がないカードを一括クローズ

ポイント
lastActivity:5d クエリは「最終更新から 5 日以上経過」したカードだけを取得。
取得件数上限は 1000 件/リクエスト。必要に応じてページング(page=2)で続行。

定期実行例(GitHub Actions)

6‑2. 【Webhook 連携】外部サービスからカード作成・ステータス別自動移動(Flask)

デプロイ例(Docker + GitLab CI)


7. 運用ベストプラクティスまとめ

項目 推奨アクション
認証方式 チーム利用は必ず OAuth 2.0、個人ツールはキー+トークンで可。
レートリミット 公式: 100 リクエスト / 10 秒https://developer.atlassian.com/cloud/trello/guides/rest-api/rate-limiting/
429 を受けたら Retry-After 待機+指数バックオフ。
エラーハンドリング ネットワーク障害・5xx は最大 5 回リトライ、バックオフ上限 30 秒。
シークレット管理 環境変数 + CI の Secrets 機能(GitHub, GitLab, Azure Pipelines, Bitbucket)で保管し、最低権限だけ付与。
トークンローテーション 6 か月ごとに新しいアクセストークンを発行し、古いものは即削除。自動化スクリプトで定期的にチェックすると便利。
テスト・モニタリング curl -I や Postman でエンドポイントの健康状態を確認し、失敗時は Slack / Teams にアラート送信。
デプロイ戦略 Docker コンテナ化 → CI/CD パイプラインでビルド・デプロイ。環境ごとにシークレットストア(AWS Secrets Manager, Azure Key Vault 等)を利用すると更に安全。

8. 参考リンク集

カテゴリ URL
公式 API リファレンス https://developer.atlassian.com/cloud/trello/rest/
レートリミット解説 https://developer.atlassian.com/cloud/trello/guides/rest-api/rate-limiting/
OAuth 2.0 ガイド https://developer.atlassian.com/cloud/trello/guides/rest-api/oauth-2/
環境変数管理(dotenv) https://github.com/motdotla/dotenv
指数バックオフ実装例(Node.js) https://github.com/axios/axios#handling-errors
CI/CD シークレットベストプラクティス https://learn.microsoft.com/en-us/azure/devops/pipelines/process/library?view=azure-devops

9. 最後に

  • まずは手元でキーとトークンを取得し、サンプルコード(Node.js / Python)を走らせてみましょう。
  • チーム開発や本番運用を考えるなら、OAuth と CI/CD のシークレット管理へ段階的に移行するのが安全です。
  • 本稿で示した「レートリミット対策」「指数バックオフ」「CI/CD 各種」などの実装は、予期せぬエラーやスパイク時でも安定稼働させるための必須要素です。

これらを踏まえて 自分だけの Trello 自動化 を構築し、業務効率化に活かしてください。 🎯

スポンサードリンク

-Trello