見出し画像

カレンダーの内容をLINEに通知する!

 私は、バスケットボールのアナリストを目指しています。アナリストの仕事は試合などから「収集」「分析」「伝達」することが仕事です。今回ピックアップするテーマは「分析」に繋げたい内容です。

 今回はいま勉強しているGASを使ってGoogleカレンダーの内容をLINEに通知してみたいと思います!!誰にでも使って頂けるように書きました!

1.Googleカレンダーの内容をLINEに通知する!

 まずは、G Suiteアプリケーションの1つであるGoogleカレンダーの予定を自分のLINEに通知させたいと思います。初心者だったからこそ、すごくわかりやすく書いていきます!

 使うコードは以下の通りです!このままでは使えないので細かく話していきます! 

function myFunction() {
 function myFunction() {
 // カレンダーID
 var calId = "(①ーーーーー@gmail.com)";
 // LINE Notifyのアクセストークン
 var key = "(②ーーーーーーーーーーーーーーーーー)";
 // これは共通:LINE NotifyのURL
 var url = "https://notify-api.line.me/api/notify";

 
 var cal = CalendarApp.getCalendarById(calId);
 var now = new Date();
 var tomorrow = new Date(now.getFullYear(), now.getMonth(), now.getDate() + 1);
 // googleカレンダーから明日の予定を取得
 var tomorrowEvent = cal.getEventsForDay(tomorrow);

 // LINE Notifyに送るメッセージ
 var msg = "";
 // 予定がない日
 if(tomorrowEvent.length === 0){
   msg ="\n明日の予定はないよ。";
 }
 // 予定がある日
 else{
   msg += "\n明日の予定は" + String(tomorrowEvent.length) + "件だよ。\n\n";
   msg += allPlanToMsg(tomorrowEvent);
   msg += "確認してね!\n(③html//:ーーーーーーーーーー)";
 }

 var jsonData = {
   message: msg
 }

 var options =
 {
   "method" : "post",
   "contentType" : "application/x-www-form-urlencoded",
   "payload" : jsonData,
   "headers": {"Authorization": "Bearer " + key}
 };

 var res = UrlFetchApp.fetch(url, options);
}

function allPlanToMsg(events/* array */){
 var msg = "";
 events.forEach( function(event, index){
   var title = event.getTitle();
   var start = event.getStartTime().getHours() + ":" + ("0" + event.getStartTime().getMinutes()).slice(-2);
   var end = event.getEndTime().getHours() + ":" + ("0" + event.getEndTime().getMinutes()).slice(-2);
   // 予定が終日の日
   if( event.isAllDayEvent() ){
     msg += String(index + 1) + "件目: " + title + " 終日の予定があるよ!\n\n";
     return;
   }
   msg += String(index + 1) + "件目: " + title + " " + start + "~" + end + "\n\n";
 });
 return msg;
}
}

 このコードを書く場所:①Googleドライブの新規から「その他」→Google App Script で開くか、②Googleスプレッドシートから「ツール」→<スクリプト エディタ>でも開いて書きます!

スクリーンショット 2020-10-15 21.07.43

2.揃えるの2つ、やること4つ

【揃えるもの】
①カレンダーIDと公開URLを取得する! 
・var calId = "(①ーーーーー@gmail.com)";
 ・msg += "確認してね!\n(③html//:ーーーーーーーーーー)";
②LINE Notifyのアクセストークンを取得する!
 ・var key = "(②ーーーーーーーーーーーーーーーーー)";
【やることの流れ】
  ①Googleカレンダーの設定を開いてIDと公開URLを取得
  ② LINE Notifyのアクセストークンを取得
  ③通知したいLINEグループに” LINE Notify”を招待する
  ④許可を確認して実行

3.Googleカレンダーの設定を開いてIDと公開URLを取得

  Googleカレンダーの設定→「マイカレンダーの設定」→「カレンダーの統合」を開きます。そこにカレンダーIDと公開URLが取得できます!

スクリーンショット 2020-10-15 21.40.46

4. LINE Notifyのアクセストークンを取得

 アクセストークンは認証済みユーザーを識別するための文字列なので、今回は"Googleカレンダー"がLINEにログインするを許可のために必要なキーと思ってください!

   LINE Notify のマイページで自分のLINEにログインします。そうすると、連携中サービスとアクセストークンの発行(開発者向け)の2つが出てきます。通知したいグループを選択してトークン名を付けて「アクセストークンの発行」で取得できます!

スクリーンショット 2020-10-15 21.51.22

 ここで忘れにうちに、通知したいLINEグループに公式LINEアカウント” LINE Notify”を招待します!※忘れがちです!

5.許可を確認して実行  

   コードに①〜③を当てはめたたら、"myFunction"関数を選んで  ▶︎ のマークを押します!これで実行できます!

スクリーンショット 2020-10-15 22.18.39

 初めてのアカウントでの実行であると、「許可の確認」が必要です!

スクリーンショット 2020-10-15 22.14.21

  きちんと実行されたら、LINEにカレンダーの通知がいきます!ここでは、実行したら通知がいきますが”トリガー”などを用いれば毎日指定した時間に通知がくるようになります!

6.完成

iOS の画像