ブロックチェーン・AI・システム開発の株式会社INDETAIL

Googleカレンダーに予定を追加するリンクを、自動で生成するジェネレータを作ってみた

2018.04.20
andash

はじめまして!andashです! 少し前、社内外向けにGoogleカレンダーの予定追加URLを簡単に作れる人募集!という話が挙がっており、ご縁があってこのテーマで書かせてもらうことになりました。 簡単に操作できるよう、今回はスプレッドシート × Google Apps Scriptで実装してみたいと思います。

BitlyのAPIアクセストークンを取得する

GoogleカレンダーのURL自体はすぐ生成できるのですが、テンプレート情報をURLパラメーターに乗せる都合上、URLが長くなりがちです。 短縮されていたほうが何かと都合がよいと思い、まずは前準備として、短縮URL発行サービス「Bitly」のAPIアクセストークンの取得から始めます。

手順

  • 1.画面右上の [三] のアイコンをクリック
  • 2.ログインユーザーをクリック
  • 3.Generic Access Tokenをクリック
  • 4.PASSWORDを入力してGENERATE TOKENをクリック!

ここで発行されたAPIアクセストークンは二度と画面表示されないので、忘れずメモします。

Google Apps Scriptで実装を行う

Googleカレンダーに表示させるテンプレート内容は誰でも操作できるよう、スプレッドシートで管理することにしました。 以下実装コードです。

プログラムでハマった点

ちょっとハマった点としては、

  • 当たり前ですが、URLパラメータに元URLを乗せる必要があったので、encodeURIComponentでエンコードする必要があった。
  • ↑改行コードがencodeURIComponentではエンコードしてくれなかったので、正規表現で「%0A」に置換する必要があった。

ということがありました。

スプレッドシート側

スプレッドシート側では、「タイトル」や「開始・終了日時」を入力してもらい、ステータスを「URL生成」に変更するとsetShortnerUrl内で短縮URLを発行して、URL列にそのURLを表示してくれます。

アクセス数も取得できる

また、その短縮URLが何回クリックされたかスプレッドシート起動時に一括取得するようにしているので、アクセス数なども確認できます。

実際に動かしてみる

実際にURLが生成される様子を動画でご覧ください(小さくてすみません!)

出来上がったURLをクリックしてみる!!↓

出来上がったURLをクリックしてみましょう。(こちら Googleカレンダー登録画面に遷移して、タイトルに「Googleカレンダーに誘導するリンクを楽に作りたい!」が表示されれば思惑通りです。

最後に

実はGoogle Apps Scriptを今回初めて触りましたが、JavaScriptのノリで実装できたので、思ったほど悩まずに実装できたことに感動しました。 ちょっと変えればプロジェクトでも転用できそうなので、今度は業務用に改造しようと思います。

参考リンク

Googleカレンダーへ予定追加するリンクのURL

余談:サービス終了で枕を濡らす

当初はGoogleのURL短縮サービスを使って実装していたのですが、サンプル実装完了と共にサービス終了の案内が来たので、枕を濡らしながらBitlyで再実装しました… GoogleのURL短縮サービス「goo.gl」2019年3月30日に終了へ

andash

andash 私の血液はエナジードリンクでできている。

「いいね」ボタンを押すと、最新情報をすぐに確認できます。