Manatee.Trello ライブラリを使っていろいろな操作をしていきます。
もち備忘録です!
環境
- Windows 11 Home 21H2
- Visual Studio Community 2022
- .NET 6.0
- Manatee.Trello 4.4.2

認証トークン取得
カードを作成するには、APIキーと認証トークンが必要です。
次のページ からAPIキーと認証トークンを取得。

APIキー

認証トークン
そのままトークンリンクから認証トークンを作成します。


カード作成
1 2 3 4 5 6 7 8 9 10 11 12 13
| using Manatee.Trello;
TrelloAuthorization.Default.AppKey = "[your application key]"; TrelloAuthorization.Default.UserToken = "[your user token]";
ITrelloFactory factory = new TrelloFactory();
var list = factory.List("[your list id]");
var card = await list.Cards.Add("カード名"); card.Description = "カード説明文";
await TrelloProcessor.Flush();
|

リストIDの調べ方
URLに「.json」と入力するとJSON型式で表示されるので、リスト名で検索する。

リスト移動
1 2 3 4 5 6 7 8 9 10 11 12 13
| using Manatee.Trello;
TrelloAuthorization.Default.AppKey = "[your application key]"; TrelloAuthorization.Default.UserToken = "[your user token]";
ITrelloFactory factory = new TrelloFactory();
var card = factory.Card("[your card id]");
var list = factory.List("[your list id]"); // 移動先リスト card.List = list;
await TrelloProcessor.Flush();
|

カードIDの調べ方
ライブラリを使っている場合は、URLのIDで指定できます。

リストIDを調べたときと同じように「.json」を指定して調べることもできます。カードの場合は先頭のIDがカードIDになります。

リマインダー設定
ライブラリが非対応でした。
公式リファレンス にも載っていなかったので、自己責任でお願いします。
- start -> 開始日
- due -> 期限
- dueReminder -> リマインダー
リマインダーの値は次を設定してください。
- “-1”:なし
- “0”:期限になったとき
- “5”:5分前
- “10”:10分前
- “15”:15分前
- “60”:1時間前
- “120”:2時間前
- “1440”:1日前
- “2880”:2日前
上記以外も設定できますが、カードのリマインダー設定には表示されません。一応設定はできてるみたい。

C#
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| using Microsoft.Net.Http.Headers; using System.Text; using System.Text.Json;
var parameters = new Dictionary<string, string>() { { "key", "APIKey" }, { "token", "APIToken" }, };
var queryString = await new FormUrlEncodedContent(parameters).ReadAsStringAsync();
var httpRequestMessage = new HttpRequestMessage(HttpMethod.Put, $"https://api.trello.com/1/cards/{cardId}?{queryString}") { Headers = { { HeaderNames.Accept, "application/json" }, } };
var payload = new Dictionary<string, string>() { { "start", "2022-08-15T00:00:00+09:00" }, // 開始日 { "due", "2022-08-16T00:00:00+09:00" }, // 期限 { "dueReminder", "2880" }, // リマインダー "-1":なし、"0":期限になったとき、"5":5分前、"10":10分前、"15":15分前、"60":1時間前、"120":2時間前、"1440":1日前、"2880":2日前 };
httpRequestMessage.Content = new StringContent(JsonSerializer.Serialize(payload), Encoding.UTF8, "application/json");
var httpClient = new HttpClient(); await httpClient.SendAsync(httpRequestMessage);
|
Python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| import requests
url = "https://api.trello.com/1/cards/{cardId}"
headers = { "Accept": "application/json" }
query = { 'start': "2022-08-15T00:00:00+09:00", # 開始日 'due': "2022-08-16T00:00:00+09:00", # 期限 'dueReminder': "2880", # リマインダー "-1":なし、"0":期限になったとき、"5":5分前、"10":10分前、"15":15分前、"60":1時間前、"120":2時間前、"1440":1日前、"2880":2日前 'key': 'APIKey', 'token': 'APIToken' }
response = requests.request( "PUT", url, headers=headers, params=query )
print(response.text)
|