IFTTTとTogglのラッパーAPI

Dev/Home
IFTTT
Toggl

更新日時 : 2020/12/20 10:06
投稿日時 : 2020/12/20 10:04

Toggl

勉強時間などを計測するために、Togglというタイムトラッキングサービスを最近使用している。
英語の勉強時間や運動時間、家事に費やした時間を集計してレポートとして見ることができて便利だ。
ただAndroid、iOS、Webなどアプリがあるが、何かを始める度に入力することは面倒である。しかし、出来るだけ細かく入力した方が振り返りに便利。

IFTTT

IFTTTはWebサービス同士を連携できるサービスで、2020年10月からの無料プラン変更に伴い、自分は有料プランに変更した。
せっかく有料プランにしたのだから、最大限活用したく、Togglと連携できないか調べてみた。

TogglとIFTTTの連携

Google HomeからTogglを使う

上記の記事のように、Google AssistantからTogglを操作できると便利そうだったので、ラッパーAPIを作ってみたところ、なるほど便利。以前より細かく計測できるようになった。

ラッパーAPIの改良

1ヶ月ほど使ってみてもう少し使いやすくする・かつ細かいことをしたいなーと思い、次の点から改良してみた。

  • プロジェクトをIFTTTから入力しやすくする
    • プロジェクトIDでなく、プロジェクト名で入力できるようにする
  • 時間帯などの条件によって、アクションを制御する
    • スマホが家のWiFiと接続したら、電気ONかつTogglのトラッキング開始のアクションを作ったら、深夜にスマホが再起動して、目覚めが最悪になったので...
    • IFTTTのWebhookから呼ばれるかつ呼び出す用のエンドポイントを作る

ラッパーAPIの開発

せっかくなので、Spring WebFluxを勉強がてら開発、Azure AppServiceにデプロイすることにした。最低限の機能しか開発してないので、ちょくちょく直してく。

https://github.com/vagivagi/connector

  • さらにせっかくなのでGraal VM使ってNative Imageでデプロイしようとしたら、JDKのダウンロードに時間かかりすぎて死んだ。あとでやる。
  • Toggl APIのSDKもあったが、Webflux対応していないので、自分でガリガリ書いた。気が向いたら、リポジトリ分けるかも。
  • Toggl APIやIFTTTのWebhookの仕様に引っ張られて、セキュリティ的に微妙なところがあるので、アプリやインフラ設定からもう少しセキュリティ担保したい

今後

今後はIFTTT対応していないサービスのAPIやIFTTTだけで組むのが難しそうなレシピ思いついたらラッパー使っていく。