あきろぐ

いろいろめもするよ

Google CalendarをCLIで扱えるnpmを作成しました

作ったもの

Google CalendarCLIで扱えるnpmを公開しました。機能はシンプルですが、ターミナル上でGoogle Calendarのイベントを表示、登録、編集、削除することができます。

www.npmjs.com

作成動機

最近Javascriptを勉強していたこともあり、外部APIを使って何かCLIツールとして便利なものを作ってみたいと思ったからです。 他にも色々案は考えていましたが、大体二番煎じになってしまうものしか思いつかず、一番アイディアだしに苦労しました。

結構無難ではあるけど、自分の観測内ではGoogle Calendarをいい感じに扱えるnpmは存在してなさそうだったので、これに決定しました。 Google Calendar APIを使うためにGCPでService accountを作成したりと、普段AWSしか触っていない身としては勉強になりそうだなと思ったのも1つの動機です。

Google Calendar + Javascriptをいい感じに組み合わせてgoogler-jsと命名しました。

悩んだところ

GCPよく分からん

GCP側のOAuth認証の同意画面で何が原因か分からないエラーに遭遇し、数時間時間を溶かしました。 結局アプリ名がよくなかったみたいです、ハイフン使うとだめだったみたい?(エラーメッセージに含めてほしい)

OAuth認証使うかサービスアカウントを使うか

OAuth認証だと期限が切れると毎回認証作業が発生するのがめんどくさいので、サービスアカウント使う方法を調べていたのですが、サンプルには載っていなくて探すのに時間かかりました。

レポジトリのREADMEに記載あったので無事サービスアカウント使った認証方法で実装できました。

github.com

CLIツールとしての使いやすさ

CLIGoogle Calendarを操作できるとはいえ、やっぱり使いにくいとブラウザ上で操作したほうが早いとなってしまい意味がないので、ある程度の操作性が担保されるように実装するのは考えどころでした。

ワンライナーで必要な情報を指定して実行するのもありですが、対話的インターフェースの方が操作しやすいかと思ったのでenquirerを導入し、入力値に不正な値が含まれていたら弾かれるようにバリデーションもしっかり実装しました。

後は、使っていてほっこりするようにネコチャンを召喚させてます。

実行イメージはこちら(途中入力ミスしてますがw)

googler-jsの今後

まだ最低限しか機能がないので、イベントを検索するなどもう少し機能拡張したいなと思っています。