カレンダーの内容を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スプレッドシートから「ツール」→<スクリプト エディタ>でも開いて書きます!
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が取得できます!
4. LINE Notifyのアクセストークンを取得
アクセストークンは認証済みユーザーを識別するための文字列なので、今回は"Googleカレンダー"がLINEにログインするを許可のために必要なキーと思ってください!
LINE Notify のマイページで自分のLINEにログインします。そうすると、連携中サービスとアクセストークンの発行(開発者向け)の2つが出てきます。通知したいグループを選択してトークン名を付けて「アクセストークンの発行」で取得できます!
ここで忘れにうちに、通知したいLINEグループに公式LINEアカウント” LINE Notify”を招待します!※忘れがちです!
5.許可を確認して実行
コードに①〜③を当てはめたたら、"myFunction"関数を選んで ▶︎ のマークを押します!これで実行できます!
初めてのアカウントでの実行であると、「許可の確認」が必要です!
きちんと実行されたら、LINEにカレンダーの通知がいきます!ここでは、実行したら通知がいきますが”トリガー”などを用いれば毎日指定した時間に通知がくるようになります!