
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; } }むっちゃ簡単✧\\ ٩( ‘ω’ )و //✧
(「・ω・)「ぜひ利用してみてください
|)彡サッ
月の半分は出張生活の技術営業をこなす日々から、
気づけばフリーエンジニアに転身し、活き活きとした毎日を送るように!猫の下僕。
ネコワーキングスペース 創りたい。関わった人が活躍できる場所を創るために奔放中!
\あんこのTwitterはこちら!/
コメント ( 0 )
トラックバックは利用できません。
この記事へのコメントはありません。