GASを使ってLINEBOTを作ろう(1)の続き.
今回はBOTに「@BOT(改行)出勤」と送信すると,
スプレッドシート に時間を記入する部分を作成する.
コードは下記の通り.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
var channel_access_token = "LINE DEVELOPPERSのチャネル基本設定を見てね" var USER_ID = 'これもチャネル基本設定を見てー'; //spreadSheetの設定 var id = 'spreadSheetId';//https://docs.google.com/spreadsheets/d/"この部分がidです"/edit#gid=1856578608 var spreadsheet = SpreadsheetApp.openById(id); var url = "https://api.line.me/v2/bot/message/reply"; // 応答メッセージ用のAPI URL // ボットにメッセージ送信/フォロー/アンフォローした時の処理 function doPost(e) { var json = JSON.parse(e.postData.contents); var reply_token= json.events[0].replyToken; var user_id = json.events[0].source.userId; var user_message = json.events[0].message.text; //ここにメッセージが格納される var sheet; sheet = spreadsheet.getSheetByName("sheet1");//sheet1に記入する sheet.appendRow([user_message]);//シートにメッセージを記入 var message_array = user_message.split('\n');//改行で区切って,配列に格納 if(message_array[0] == '@Bot') {//1行目が@Bot if(message_array[1] == '出勤'){//2行目が出勤 //その月のスプレッドシートがあるか検索する var today = new Date(); var year = today.getYear(); var month = today.getMonth()+1;//getMonthは0--11で値が返ってくる var newSheetName = 'userName_' + year + month; inputPunchInTimeToSheet(newSheetName);//指定したシートに時間を記入 //返信 pushMessage('出勤しました.'); } } } function inputPunchInTimeToSheet(sheetName) { var sheet; var nowTime = new Date(); var date = nowTime.getDate() sheet = spreadsheet.getSheetByName(sheetName);//指定したシートに記入 sheet.getRange(date, 1).setValue(nowTime);//A列に出勤時間を打刻 //出勤フラグとしてA40に出勤した日付を保存 sheet.getRange(40,1).setValue(date); } /*メッセージを送信*/ function pushMessage(message) { var today = new Date(); var month = today.getMonth() + 1; var date = today.getDate(); var hour = today.getHours(); var minute = today.getMinutes(); var textMessage = month + '月' + date + '日' +hour + ':' + minute +'\n' + message; var postData = { "to": USER_ID, "messages": [{ "type": "text", "text": textMessage, }] }; var url = "https://api.line.me/v2/bot/message/push"; var headers = { "Content-Type": "application/json", 'Authorization': 'Bearer ' + channel_access_token, }; var options = { "method": "post", "headers": headers, "payload": JSON.stringify(postData) }; var response = UrlFetchApp.fetch(url, options); } |
これで,出勤できるようになった.
これの応用で,退勤の時刻も記入できる!!