見出し画像

[OmniToggl] Toggl V9 API へ対応させました

私が愛してやまない OmniTogglですが、最近、こんな通知が来ました。

toggl track から届いたメール

いつまで V8 API 使ってるんだ、とっとと V9 にしやがれ、ということです。なんということでしょう。

わたしはこんなにも OmniToggl を使って日々の活動を行っています。

OmniToggl が使えない = 活動の停止を意味します。

そこで私はこのゴールデンウィークに、V8 → V9 へのマイグレーションへと手を付けることにしました。元のプログラムのコアは 3年以上更新がありません。自分で直すしかない。

ここを参考にしながら、久しぶりに他人のプログラムを観察しました。

眺めていて分かったことは次の通りです。

  1. API の URL を変更する

  2. Workspace ID を URL に付与する必要がある

  3. Time Entry する場合の必須項目が違う様子

  4. Stop Entry する場合に PATCH Method へ変更

あまり大きな変更は不要な気がしますが、Workspace の ID をきちんと取得しないとならないことがネックです。それ以上にネックなのが、Omni Automation で開発をしたことがないということです。

JavaScript エンジンは自前で実装しているかのようで、専用のコンソールが準備されています。またここにある API Reference に入っている Class は使えるものの、標準的に使えるライブラリなどはないようです。なるほど、だから 'btoa()' とかわざわざ実装しているのか…。なんか厄介な気がします。

とりあえず、fork して名前を変えて並行実行できるようにしていろいろと試した結果、ゴールデンウィーク前半で修正が完了しました。
しょっさん素晴らしい。

ということで実装コードはここ。

まだ本家には Pull Request してませんけど、とりあえず V9 対応の OmniToggl はここで手に入ります。どうぞ使ってみてください。V9 へ対応させて StopTimeEntry のときにもコンソールに出力するようにしました。それだけの変更です。でも大変だった。

バグってたら教えてね!!!!!!

この記事が参加している募集

おすすめアプリ

貴方がサポートしてくれると、私が幸せ。 私が幸せになると、貴方も幸せ。 新しいガジェット・ソフトウェアのレビューに、貴方の力が必要です。