C# Trelloの特定リストのタスク一覧を取得する

Trelloのタスクボードの特定リストをC#で取得する

Trelloでタスク管理をしてて、期限を守れない人がいたので、
期限を取得して、通知する仕組みを作ったので、Trello部分を備忘録として記載(ↀωↀ)✧

ここでは、HttpRequestでTrello情報を取得する流れを記載していく|・ω・)

API KEYを取得する

TrelloのAPI KEYを取得するサイトにアクセスします。
https://trello.com/app-key

下記画面になります。
(事前にTrelloにログインが必要です。)
開発者向けAPIキーをコピーしておきます。

 

TOKENを取得する

TrelloのAPI KEYを取得したサイトにある
「トークン」リンクをクリックします。

利用許可画面に遷移します。

許可をクリックします。
ブラウザの画面遷移が行われ、TOKENが表示されます。
値をコピーします。

REST APIからTrello情報を取得する

開発者APIドキュメントはこちら。
https://developers.trello.com/reference#introduction

対象のリストIDを取得するために、ブラウザから下記のURLへアクセスします。
Board IDはブラウザでボードにアクセスした時にURLに表示されている値です。

https://api.trello.com/1/boards/{Board ID を記載}?actions=all&boardStars=none&cards=none&card_pluginData=false&checklists=none&customFields=false&fields=name%2Cdesc%2CdescData%2Cclosed%2CidOrganization%2Cpinned%2Curl%2CshortUrl%2Cprefs%2ClabelNames&lists=open&members=none&memberships=none&membersInvited=none&membersInvited_fields=all&pluginData=false&organization=false&organization_pluginData=false&myPrefs=false&tags=false,url&key={API KEYを記載}&token={TOKENを記載}

下記のJsonが返ってきます。
取得したいリストのIDを控えます。

{
    "id": "ボードID",
    "name": "ボード名",
    "desc": "ボードの詳細",
    "descData": {
        "emoji": {}
    },
    "closed": false,
    "idOrganization": null,
    "pinned": false,
    "url": "https://trello.com/X/XXXXXXX",
    "shortUrl": "https://trello.com/X/XXXXX",
    "prefs": {
    },
    "labelNames": {
    },
    "actions": [
    ],
    "lists": [
        {
            "id": "リストID。ここの値を控える",
            "name": "リスト名",
            "closed": false,
            "idBoard": "ボードID",
            "pos": 11111,
            "subscribed": false,
            "softLimit": null
        }
    ]
}

取得したAPI KEY、TOKEN、LIST IDを使用して、Trelloの特定のリストがもつタスク情報をC#で取得します。
処理はシンプル|・ω・)

HttpClientのGetAsyncでTrelloのアクションを投げるだけ。
await reader.ReadToEndAsync();でTrelloの情報をJSONで取得ができる。

private const string TRELLO_API_KEY = "XXXXX";
private const string TRELLO_TOKEN = "XXXXX";
private const string TRELLO_LIST_ID = "XXXXX";

private static async Task<string> GetTrelloBoardAsync()
{
    var client = new HttpClient();

    // Trello Api から情報を取得
    var response = await client.GetAsync(
        $"https://api.trello.com/1/lists/{ TRELLO_LIST_ID }/cards?fields=id,name,badges,labels,url&key={TRELLO_API_KEY}&token={TRELLO_TOKEN}");

    // レスポンスのコンテントを取得
    var responseContent = response.Content;

    // コンテントからTrello APIから取得したJSONを読み込む
    using (var reader = new StreamReader(await responseContent.ReadAsStreamAsync()))
    {
        // JSON取得
        var content = await reader.ReadToEndAsync();
     // JSONをモデルに変換(モデルは別途作成してください)
        List<TrelloTasksModel> trelloTasks = JsonConvert.DeserializeObject<List<TrelloTasksModel>>(content);
     // 特定のリストが持つタスク一覧をループして詳細を取得
        foreach (var tTask in trelloTasks)
        {
            // 各タスクの値を取得 
            var tName = tTask.Name;
            var tUrl = tTask.Url;
            var dt = tTask.Badges.Due;
        }
        // 必要な情報をreturnするようにしてください
        return content;
    }
}

むっちゃ簡単✧\\ ٩( ‘ω’ )و //✧

(「・ω・)「ぜひ利用してみてください

|)彡サッ

関連記事一覧

  • コメント ( 0 )

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。