会社でちょっとした用で,過去の勤務時間が必要になったので,
経理の人に過去3ヵ月分のタイムカードを掘り起こしてもらった.
すると,タイムカードの右隅にその月の合計勤務時間が手書きで書いてあって,
「これ毎回手計算してるんか?大変やなぁ(^_^;)」
と思ったので,これくらいは自動でしてあげたいと思い,
勤怠管理システムを作ろうと勉強をはじめました.
色々調べてみると,GoogleActionScript(GAS)とLINEを使って勤怠管理している方が多かったので,私もその方向でシステムを構築する.
やりたいことは
例えばLINEBOTを作成して,そのBOTに
「@kintai 出勤」
と打てば,GASを介して,googleスプレッドシートにその時の日時と出勤時間をスタンプする.
「@kintai 退勤」
と打てば,同様にスプレッドシートに退勤時間をスタンプして,その日の合計勤務時間を返信する.
といったものを作る予定.
ということで,まずはLINEBOTを作成します.
LINEBOTの作成は綺麗にまとめてはるサイトがあったので,これを参考に作りました.
簡単に手順を説明すると
1)LINE BUSINESS CENTRE でbusinessアカウントを作成
2)Message API Developper trialを選択
3)LINE developpersでAPIを色々設定
といった流れです.
30分ほどで,さらぁーっとできます.
まずはLINE BOTとやりとりできるかテストしましょう.
googleドライブ内に適当にスプレッドシートを作成してください.
スプレッドシートの「ツール」に「スクリプトエディタ」があるので,
クリックするとエディタが開きます.ここにGASを記入していきます.
まずは,BOTに送ったメッセージをスプレッドシートに記録してくGASです.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
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]);//シートにメッセージを記入 } |
問題なければ,これで指定したシートのA1にBOTに送信したメッセージが記録されているはず!!
次回は,出勤と退勤の分類などをやる予定....