今回は、Googleカレンダーに予定が登録された際にLINEへ通知するGASのプログラムについて詳しく解説します。Google Calendar APIサービスを使用し、GASでGoogleカレンダーとLINEを連携させて自動的に通知を送る方法を紹介します。
初心者の方にも理解しやすいように、具体例を交えながら説明します。
■ 動作環境
OS:Windows 10 Home(64ビット)
Chrome:122.0.6261.128(64ビット)
Google Calendar API:V3
■ Google Calendar APIサービスの有効化
Googleカレンダーを詳細に制御するため、今回はGoogle Calendar APIを活用します。
まず、開発環境でGoogle Calendar APIを有効化しましょう。
(1)Google Cloud Consoleにアクセスします。 https://script.google.com/home
(2)開発を行うプロジェクトを選択する、もしくは「新しいプロジェクト」から新規にプロジェクトを作成します。
(3)「サービス」を選択します。
「サービスを追加」画面にて「Google Calendar API」を検索し選択、「追加」をクリックします。
■ LINE Notifyの有効化
LINE Notifyは、LINEアカウントに通知を送信するためのサービスです。これを利用することで、GASと連携しLINEで通知を受け取ることができます。
ここで取得するアクセストークンはのちほどGASの中で利用します。
事前の設定方法など詳しい説明は、こちらをご覧ください。(参考備忘録)GAS:LINE Notifyの使い方徹底解説 |
■ Googleカレンダーで予約が登録された際に動作するGAS
早速スクリプトを見ていきましょう。
Google Calendar APIのお作法に従い順番に説明していきます。
(1)現時点の全予約データを取得
予約登録を監視するカレンダーを選定します。
選定したカレンダーのIDを CALENDAR_ID定数に指定します。
デフォルトカレンダーの場合は、「primary」を指定することでも同じ意味となります。
前述のカレンダーIDを使って、Events.list()メソッドを呼び出すことで初回同期(現時点での全予約データを取得)が行われます。
次回以降問い合わせる際に必要となるトークン(nextSyncToken)をスクリプトプロパティへ退避します。
スクリプトが組めたら、一度だけ(手動で)実行してください。
実行後は、スクリプトプロパティに次回利用するトークンが記録されていることも合わせて確認しましょう。
(2)予約が登録された際、予約データの差分を取得
スクリプトプロパティから前回取得したトークンを取り出します。
カレンダーIDにトークンを組み合わせ、Events.list()メソッドを呼び出すことで前回からの差分が取得できます。
予定情報はitems配列に格納され返却されますので、複数要素が返却されることを想定しfor文で回しながら中身を検査します。
sendMessageToLINEは、LINEへ通知する処理を取りまとめた関数(詳細は後述)です。 関数へ渡すメッセージ文を構成してsendMessageToLINE関数を呼び出します。
status:予定の処理ステータス。新規登録、編集は「confirmed」、削除は「cancelled」が返却されます。
summary:予定のタイトル。
description:予定の説明。
(3)LINE Notify経由でLINEへ通知
LINE Notifyで取得したアクセストークンをtoken定数に指定します。
LINE Notify のエンドポイントとアクセストークンを使用して通知を送ります。
(4)トリガー登録
Googleカレンダーで予定が登録された際にonCalendarEdit関数がコールされるようトリガーを設定します。
■ まとめ
今回は、Googleカレンダーに予定が登録された際にLINEへ通知するGASのプログラムについて解説しました。Google Calendar APIサービスを有効にし、GASを使うことでGoogleカレンダーとLINEを連携させて自動通知を実現することができます。
ぜひ、この記事を参考に、GASとLINE Notifyを活用してみてください。
Comments