【C#】Trello カード操作いろいろ

アプリ開発

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)

タイトルとURLをコピーしました