GAS×LINEでGoogleカレンダー当日の予定を自動通知する方法【コピペOK・ソースコード付き】

GAS(Google Apps Script)講座

今回は、GASとLINEのAPIを利用してGoogleカレンダーに登録されているスケジュールをLINE通知させる方法をご紹介。

スケジュール管理は忙しい日々において効率的にタスクをこなすために欠かせない行為です。

適切に管理できれば、仕事でもプライベートでもより充実して快適に過ごすことができます。

通知を使えば、スケジュール管理がもっと楽になります。

本記事で自動通知ができるようになれば、予定を見逃すリスクを低減させ、日常生活や業務の効率を向上させることができます。

初めてプログラミングする方でも簡単に導入できるように、作業ステップごとに画像付きの解説&サンプルコードを提供。

ぜひ最後までお読みください!

\ゲームで学ぶプログラミング/
独学でプログラミングを学んで開発者に!
Unity入門の森オリジナル本格ゲーム制作講座はこちら
本格ゲームの全ソースコード公開・画像&動画による解説付き

GoogleカレンダーとLINE連携させてみよう!

Googleカレンダーは、Googleが無料で提供しているスケジュール管理アプリです。

無料で利用できるにも関わらず、わかりやすい操作で簡単にスケジュール管理が行えるため、多くの方に利用されています。

そんなGoogleカレンダーとLINEが提供しているAPIを連携することで、カレンダーの当日予定通知をLINEで受け取ることができるようになります。

この機能を利用すれば、スケジュール管理が楽になること間違いなしです。

GoogleカレンダーとLINEを連携させれば、予定を自動通知して日常のスケジュール管理を効率的に行えます。

今回作成するスクリプトのイメージ

いよいよGoogleAppsScriptを記述していきます。

今回は、以下のようなスクリプトを作成します。

スクリプトの仕様

  • Googleカレンダーの当日のスケジュールを取得
  • 取得した情報を加工して通知用メッセージを作成
  • LINEが提供しているAPIを利用してメッセージ通知
  • トリガーを用いて1日1回自動的にメッセージが送られるようにする

LINE Notify APIトークンの取得

GASにてLINEの機能を利用するためには、LINE Notify APIにてトークンの発行が必要です。

ブラウザからLINE Notify(https://notify-bot.line.me/ja/)にアクセス。

右上のログインを押します。

普段利用しているLINEのアカウント情報を入力してログインを押します。

本人認証コードが表示されるのでスマホやPCにてLINEを起動し認証コードを入力します。

ログインできたら右上の表示がアカウント名に変わっているのでアカウント名-マイページを押します。

「トークンを発行する」を押します。

通知を送信するトークルームは、「1:1でLINE Notifyから通知を受け取る」を選択します。

表示されたトークンコードをコピーしておきます。

スクリプト作成

まずはGoogleドライブにアクセスしましょう。

 

ウェブブラウザからGoogleドライブにアクセス。

個人向けのクラウド ストレージおよびファイル共有プラットフォーム - Google
Google ドライブのファイル共有プラットフォームについてご紹介します。個人向けの安全なクラウド ストレージとして利用し、コンテンツを他のユーザーと共有できます。

「ドライブを開く」を押します。

ログインしていない方は、事前にGoogleアカウントでログインしておきましょう。

ドライブを開くと画像のような画面になります。

Googleドライブにて「新規」から「その他」→「GoogleAppsScript」をクリックします。

AppScript画面に切り替わります。

まずは、簡単にAppsScript画面についてご説明します。

1.プロジェクト名

GoogleAppsScript上で管理する際に利用する名前。

クリックすると変更できます。

2.スクリプトファイル

プロジェクトに配置されているスクリプトファイルを確認できます。

各項目横の+ボタンを押すことでファイルを新規で作成できます。

3.ツールバー

スクリプト作成時に必要な操作ボタンがまとめられています。

保存やデバッグ、実行ログ表示、操作を1つ戻るなど。

4.エディターエリア

スクリプトファイルの編集を行うエリアです。

こちらにプログラムを記述していきます。

手始めにプロジェクト名を変更してみましょう。

今回は、メール送信スクリプトなので「CalendarToLine」に変更します。

画像

続いてプログラムを記述していきます。

今回作成するプログラムの完成形は以下になります。

メイン関数を作成

最初に関数を作成します。

関数とは、1つの目的のため複数の処理を1つにまとめて記述したものです。

GASではこの関数を呼び出して処理を実行します。

今回は、CalendarToLineという名前のファンクションを作成します。

エディターエリアに以下のように記述します。

設定情報を記述

スプレッドシートの情報など設定情報を記述します。

以下のように記述します。

事前に取得したトークンコードをLINE_NOTIFY_TOKENに入力します。

一文字でも異なると正常に動作しないので注意して入力しましょう。

Googleカレンダーの情報を取得

設定情報の記述ができましたら、Googleカレンダーの情報を取得する処理を記載します。

Googleカレンダーよりスケジュール情報を取得するためには、以下のように記述します。

この処理では、Googleカレンダーにて取得した当日のスケジュールを1件ずつ処理します。

こういった複数ある情報を1件ずつ処理する方法を繰り返し処理と呼びます。

繰り返し処理には、for()関数を利用します。

この例では、変数 i が初期値 1 から始まり、5 以下の条件を満たす限り、1 ずつ増加するという基本的な for ループがあります。各ループの実行時には、コンソールに i の値が表示されます。

スケジュール登録処理

作成したメッセージをAPIにてLINEへ送ります。

Googleカレンダーよりスケジュール情報を取得する処理の下行に以下の文章を追加します。

LINEへの通知は、APIを利用します。

APIは、種類によって必要な情報が異なります。

LINEのAPIの場合は、トークンとオプションが必要です。

トークンは、前項で作成したLINEトークンを利用します。

オプションには、以下の情報を格納します。

  • メソッド:通信種類を設定します。主にPOSTとGET、PUTがあります。それぞれに役割があり、今回のように値を入力して処理を実行させる場合は、POSTを利用します。
  • ペイロード:LINEメッセージとして表示するメッセージ内容
  • ヘッダー:API側で処理を行う際の参照する情報。ここは設定種類が多いので今回は説明を省きます。気になる方は、LINEのAPIリファレンス(https://developers.line.biz/ja/reference/line-login/)を参照してください。

GASでのAPI利用には、UrlFetchApp.fetch関数を利用します。

UrlFetchApp.fetch関数

UrlFetchApp.fetchは、引数に設定したURLへHTTPリクエストという通信を実行。

応答をHTTPレスポンス(HTTPResponseクラス)が戻り値として取得できます。

要は通信相手から情報を取得するための関数と理解しておけばよいでしょう。

引数は、URL(今回は、LINE_NOTIFY_API変数)と送る情報を格納したオプションを設定することで利用できます。

動作確認

カレンダーに新しいスケジュールを追加し、LINE通知されることを確認します。

カレンダーに当日のスケジュールを追加します。

AppScriptにてスクリプト実行ボタンをクリック。

承認確認が表示されるので指示に従います。

無題のプロジェクト が Google アカウントへのアクセスをリクエストしています

LINEに通知されれば成功です。

トリガー設定して自動通知させるようにしよう!

動作の確認ができたらトリガーを設定してみましょう。

トリガー機能を利用すれば、スクリプトの実行を手動で行わなくてもLINEへ通知してくれるようになります。

今回は、毎日1回朝09:00に自動的にスクリプトが実行されるように設定します。

AppScript画面にて以下の操作を行います。

トリガーボタンをクリック。

トリガーを追加をクリック。

以下の設定でトリガーを設定して保存をクリック。

実行する関数を選択:RegisterSchedule

実行するデプロイを選択:Head

イベントのソースを選択:時間主導型

時間ベースのトリガーのタイプを選択:日付ベースのタイマー

時刻を選択:午前9時~10時

自作したスクリプトにトリガーを設定する場合は、セキュリティ警告が表示されるので許可します。

一覧に設定したトリガーが表示されればトリガー設定完了です。

新着メールを受信して翌日に自動的にスプレッドシートに転記されていれば成功です。

まとめ

今回は、GASとLINEを連携してGoogleカレンダーに登録されている当日スケジュールをLINEに通知してくれるスクリプトを作成しました。

本記事の内容をまとめると以下です。

  • GoogleカレンダーとLINEを連携すると毎日当日のスケジュールを通知することができる
  • スケジュールのLINE通知は、GASとLINEのAPIを利用すると誰でも手軽に実現できる
  • GASでのAPIの利用方法をご紹介

LINEのAPIは、今回ご紹介したメッセージ作成機能以外にもメッセージの取得やグループチャットへのメッセージ送信、特定のメッセージへの返信など様々なAPIが提供されています。

他の機能も利用してスケジュール管理をより便利にしてみてください。

\ゲームで学ぶプログラミング/
独学でプログラミングを学んで開発者に!
Unity入門の森オリジナル本格ゲーム制作講座はこちら
本格ゲームの全ソースコード公開・画像&動画による解説付き
タイトルとURLをコピーしました