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

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

APIキー

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


カード作成
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型式で表示されるので、リスト名で検索する。

リスト移動
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#
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
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)