Twitterで自分用TODOツイートしたらTrelloに自動登録するようにしたって話【C#】
休日はやることリスト作らないと一日中寝て終わってしまうので、TwitterにTODOを書き込むようにしています。
ツイートしたからといって誰が進捗確認してくれるわけでもないのですが「なんかやらねーとなー」感が出るので気に入ってます。
さて、このTODOツイート。自分のツイート見に行かないとそもそも見れないのが手間です。
プライベートのタスクはTerlloを使っているので一元管理したいのですが、Trelloに書いてからツイートするの面倒なんですよね。Trelloにだけ書いた場合、結局誰にも見られてないし後でいいかな~状態になってしまうのがダメ。宣言大事。
ので、自分用のフォーマットでTODOツイートをしたときに、Trelloに自動でカードを追加するプログラムをのんびり自作しました。
TwitterでツイートしたらIFTTTからAuzure Functionsの自作APIへデータ送信して、任意のツイートフォーマットだったらTrelloにカードを登録するという構成です。
完成イメージ
下記のようなツイートをすると
TODO
— コケいろ (@kokeiro0_00) 2019年5月26日
- 布団干す
- シーツ洗濯
- デスク掃除
- ちまちま検証
TODO
— コケいろ (@kokeiro0_00) 2019年5月25日
- プロメア
- 寿司
- Unity/OculusGoの細々とした気になってること調査
- 洗濯
- ウォーターサーバーの水受け取る
- プチ部屋掃除
こんな感じにTrelloに追加されます。
API Key、User Tokenの取得
下記ページから開発者向けAPIキーと、ローカルテストで使用できるトークンを生成・取得します。
今回は自分用のため最後までローカルテスト用のUser Tokenを利用して開発します。この雑な開発が趣味プログラミングの醍醐味です。
Azure FunctionにTrelloのカードを登録する処理を書く
今回はManatee.Trelloを使わせてもらいました。
TrelloのC#APIラッパー。とりあえず今回は使いたかった機能は全て持ってました。感謝。
とりあえず認証してカードを追加するには下記コードで実現できます。
TrelloAuthorization.Default.AppKey = "[your application key]";
TrelloAuthorization.Default.UserToken = "[your user token]";
var trelloFactory = new TrelloFactory();
var me = await trelloFactory.Me();
var board = me.Boards.Where(x => x.Name == "TodoBoard").Single();
await board.Refresh();
var list = board.List.Where(x => x.Name == "Progress").Single();
await list.Cards.Add("やること1");
簡単。短い。素敵。ありがとうManatee.Trello
で、実際にTweetのパース、Trelloのカード追加してるコードはこのへん。
IFTTTにAppletを登録する
TweetしたらWebRequestするAppletを登録します。
今回はツイート内容(Text)のみを取得しました。
IFTTTは素直にWebRequest作れるのが良いですね。簡単に自作サービスと繋げられます。
まとめ
これまでもIFTTTとTwitterの連携はやってたのですが、Trelloとの連携は初めてでした。
ライブラリのおかげでサクッと実装できました。感謝。
開発者用トークンを使い続けるのも不格好なので、気が向いたら清書したいですね。