Lineで自動リマインダーアプリ
Lineで自動リマインダーアプリ:
研修場所を知るのがめんどくさい!!PC開いて、クラウドからExcelファイルをダウソして、Excelファイルを開けて、該当の研修場所を探す...
だるい!
研修生の皆も感じていたようで、LINEでは翌日の研修場所の連絡が横行していました。
そこで...
同期と共にLINEで翌日の研修場所の自動リマインドアプリを作っちゃいました!
まず、LINE Notify ホームページにアクセス。
次に、ページをスクロールし、トークンを発行するをクリック。
その後、発行するボタンを押し、トークンを控えてください。
4.貼り付け後のスプレッドシートのツール>スクリプトエディタを選択し、スクリプトエディタを開きます。(以下に画像添付)
5.スクリプトエディタにあるコードを全て、下のコードに置き換えます。
6.コード内の「トークンをここにコピペ」と書いてあるところの横の""内に先ほど控えていたトークンを貼り付けます。
もう、完成しました!
それでは、実行してみましょう。
スクリプトエディタ(コードを貼り付けた所)のメニューバーの関数を選択のプルダウンからsend2を選択し、2つ左隣の実行ボタンをクリック。(以下に画像添付)
そうすると、「承認が必要です」という画面が出てくるので、「認証を確認」を押します。(初回のみ)(以下に画像添付)
次に出てくるGoogleアカウントのアクセスも許可を押します。
許可を押した後は、再び実行ボタンを押し、LINEに通知が来たら成功です。
今先ほどは、手動で送りましたが、自動で送れるようにしましょう。
まず、下記の画像のような時計マークのアイコンをクリックします。
それから、「トリガーが設定されていません。今すぐ...」をクリック。
以下の画像のように私は設定しました。これで毎日、翌日の予定を8時頃に通知してくれます。
最後に、このサイトの掲載内容は私自身の見解であり、必ずしもIBMの立場、戦略、意見を代表するものではありません。
LINEで自動リマインダーを製作!
弊社の研修にて悩みがありました。
研修場所を知るのがめんどくさい!!PC開いて、クラウドからExcelファイルをダウソして、Excelファイルを開けて、該当の研修場所を探す...だるい!
研修生の皆も感じていたようで、LINEでは翌日の研修場所の連絡が横行していました。
そこで...
同期と共にLINEで翌日の研修場所の自動リマインドアプリを作っちゃいました!
必要なもの(以下、2つのみです)
- LINEアカウント
- Googleアカウント
LINE Notifyにアクセスする
まず、LINE Notify ホームページにアクセス。次に、ページをスクロールし、トークンを発行するをクリック。
その後、発行するボタンを押し、トークンを控えてください。
ここからはGoogleアカウントを使用します。
- お手持ちのアカウントでGoogle Driveにアクセス。
- 新規>Google スプレッドシート>空白のスプレッドシート(以下に画像添付)
- 以下のURLのスプレッドシートの内容を全てコピーし、空白のスプレッドシートに貼り付け。
4.貼り付け後のスプレッドシートのツール>スクリプトエディタを選択し、スクリプトエディタを開きます。(以下に画像添付)
5.スクリプトエディタにあるコードを全て、下のコードに置き換えます。
コード.gs
var LINE_NOTIFY_TOKEN =""; //トークンをここにコピペ var LINE_NOTIFY_API = "https://notify-api.line.me/api/notify"; // 翌日が祝日か判断する関数 function isHoliday (y,m,d) { const holidayList = { 2018: { 0: [1, 8], 1: [11, 12], 2: [21], 3: [29, 30], 4: [3, 4, 5], 5: [], 6: [16], 7: [11], 8: [17, 23, 24], 9: [8], 10: [3, 23], 11: [23, 24] }, 2019: { 0: [1,14], 1: [11], 2: [21], 3: [29], 4: [3, 4, 5, 6], 5: [], 6: [15], 7: [11, 12], 8: [16, 23], 9: [14], 10: [3, 4, 23], 11: [23] }, 2020: { 0: [1, 13], 1: [11], 2: [20], 3: [29], 4: [3, 4, 5], 5: [], 6: [20], 7: [11], 8: [21, 22], 9: [12], 10: [3, 23], 11: [23] } }; // 祝日リストに日付が含まれるかどうか調べ、結果を返す return holidayList[y][m].indexOf(d) !== -1; } function send2() { // スプレッドシートのデータを得る var sheet = SpreadsheetApp.getActive().getSheetByName('グループが変わっても大丈夫な奴'); // シートを指定(シート名を変更の際はここも対応させる) var lastRow = sheet.getLastRow(); var lastCol = sheet.getLastColumn(); var values = sheet.getSheetValues(1,1,lastRow,lastCol); var t = new Date();// 今日の日付 var tomorrow = new Date(); tomorrow.setDate(t.getDate() + 1); var y = t.getYear(); var m = t.getMonth() + 1; var d = t.getDate()+ 1; var firstDate = new Date('October 20, 2018 00:01:00'); // シートの最初の日付が2018/10/19なので、firstDate = 2018/10/20にする。変更時はここの日付も変更する // 明日の予定の行を照合 timeDifference = Math.ceil((tomorrow - firstDate) / 86400000); // 今日の日付と最初の日の差異を計算 var day = values[timeDifference][1]; // 曜日 var roomArray = []; // 研修部屋を格納する配列 var placeArray = []; // 研修場所を格納する配列 var groupArray = []; // グループを格納する配列 var count2 = 0; for(var i=2; values[timeDifference][i]!=""; i=i+3){ roomArray.push(values[timeDifference][i]); placeArray.push(values[timeDifference][i+1]); groupArray.push(values[timeDifference][i+2]); count2++; } //もし、明日の曜日が土か日か祝日だと、送らない // if(!(day=="日"||day=="土"||isHoliday(y, (m-1), d))){ var count = 0; var body = "明日(" + y +"年" + m +"月"+ d +"日)は\n"; for(var i=2; values[timeDifference][i]!=""; i=i+3){ body = body + placeArray[count] + " " + roomArray[count] + " " + groupArray[count]; count++; if(count2!=count){ body = body + ", \n"; } } body = body + "\nです。"; _sendMessage2("\n"+body); // } } // メッセージを送信する関数 function _sendMessage2(msg) { // 認証情報のセット var headers = { "Authorization": "Bearer " + LINE_NOTIFY_TOKEN }; // メッセージをセット var payload = { "message": msg }; // 送信情報をまとめる var options = { 'method' : 'post', 'contentType' : 'application/x-www-form-urlencoded', 'headers': headers, 'payload' : payload }; Logger.log(options); // 実際に送信する var NOTIFY_API = "https://notify-api.line.me/api/notify"; var response = UrlFetchApp.fetch(NOTIFY_API, options); Logger.log(response); }
完成!
もう、完成しました!それでは、実行してみましょう。
スクリプトエディタ(コードを貼り付けた所)のメニューバーの関数を選択のプルダウンからsend2を選択し、2つ左隣の実行ボタンをクリック。(以下に画像添付)
そうすると、「承認が必要です」という画面が出てくるので、「認証を確認」を押します。(初回のみ)(以下に画像添付)
次に出てくるGoogleアカウントのアクセスも許可を押します。
許可を押した後は、再び実行ボタンを押し、LINEに通知が来たら成功です。
自動で通知を送る。
今先ほどは、手動で送りましたが、自動で送れるようにしましょう。まず、下記の画像のような時計マークのアイコンをクリックします。
それから、「トリガーが設定されていません。今すぐ...」をクリック。
以下の画像のように私は設定しました。これで毎日、翌日の予定を8時頃に通知してくれます。
最後に、このサイトの掲載内容は私自身の見解であり、必ずしもIBMの立場、戦略、意見を代表するものではありません。
コメント
コメントを投稿