- 運営しているクリエイター
#GAS初心者
素人が翌日の勤務(シフト)を告げるLINEbotを作った話【1】
はじめに この記事は、これまでプログラミングに関わったことのない筆者が、便宜的な理解のもと、同じようにプログラミングに挑戦したいと思っている方向けに書いているものです。理解に誤りがある可能性がありますので、あらかじめお知らせいたします。
シフト忘れを解決したい! 筆者が勤務する福祉施設は勤務形態が複雑で、毎日出社時間が違います。こうした職場では”あるある”かと思いますが、年に何回かは出勤時間を間
素人が翌日の勤務(シフト)を告げるLINEbotを作った話【2】
準備すること 今回はコードを書いていく前の下準備をしたいと思います。今回はGASで書いたコードでLINEbotを動かすプログラムということで、以下の準備が必要になります。
1. LINE公式アカウントの用意 ①LINEDevelopersのアカウント登録&ログイン
②プロバイダの作成
③チャンネル作成(公式アカウント作成)
といった準備が必要です。これらについては詳細に解説している記
素人が翌日の勤務(シフト)を告げるLINEbotを作った話【3】
大まかな仕様
上記の通り、スプレッドシートに勤務のデータを入れておき、それをもとにプログラムが動く仕組みになっています。データさえ入っていれば自動で動くようになっていますが、このデータを入力する作業だけは毎月手動で行わなければいけません。
筆者の所属する会社では、シフト表をExcelで作成しています。Excelからスプレッドシートへはコピー&ペーストできるので、手間はほとんどかかりません
素人が翌日の勤務(シフト)を告げるLINEbotを作った話【4】
コードを記述します 今回からいよいよ本格的にコードを書いていきます。
①オウム返しbotを消去 まず、第二回で書いたオウム返しbotのコードを消去します。
②シートの指定 ①の次の行に以下のコードをコピペしてください。
var channel_access_token = "トークン";var headers = { "Content-Type": "application/json; c
素人が翌日の勤務(シフト)を告げるLINEbotを作った話【5】
メッセージ送信機能の追加前回の記事で、スプレッドシートとの連携(ユーザー登録、メッセージログ)機能のコードを書きました。
このあと、【勤務表からデータを取得】してそれをユーザーに【送信】するわけですが、まずはこの【送信】部分のコードを今回書いていこうと思います。
メッセージ送信のいろいろ一口にメッセージを送信すると言っても、ユーザー全員に送るのか、特定のユーザーに送るのかで書き方が変わってきま
素人が翌日の勤務(シフト)を告げるLINEbotを作った話【6】
関数を2つ書きます前回は、メッセージの送り方をいくつかご紹介しました。今回はいよいよメッセージの中身を書いていきます。今回書く関数は2つ。
1つめ”getWorkDataFromSheet”は、スプレッドシートの勤務表から特定の日付の勤務データを取得して、LINEで流れたときに見やすい文字列に成形する関数
2つ目"sendTomorrowsShiftEverynight"は、”getWorkD
素人が翌日の勤務(シフト)を告げるLINEbotを作った話【7】
トリガー設定 前回、①特定の日付の勤務情報を取得する関数と②①に翌日の日付を渡し、返ってきた勤務情報をLINEに送信する関数を書きました。
②の関数を実行するとLINEにメッセージが届くのですが、毎日自動で送信してほしいところですよね。
そこで使うのが、トリガー設定です。
スクリプトエディタ画面の時計マーク(赤枠)を選択すると、下の画面が表示されます。
右下の「トリガーを追加」を押
素人が翌日の勤務(シフト)を告げるLINEbotを作った話【8】
追加機能を考えよう 前回までの記事で、毎日シフトを読み上げてくれるBotを作り上げることができました。私も最初はこの状態で使用していたのですが、使っていくうちにもう少し機能が追加できないかと考えるようになりました。
①は毎日のシフト送信の応用で、「この日のシフトってどうなってるかな?」というときに、日付を指定してシフトを検索できないか、という発想です。勤務を検索する機能はもうできているので、課
素人が翌日の勤務(シフト)を告げるLINEbotを作った話【9】
勤務確認機能を追加します 前回書いたとおり、指定日の勤務確認機能を作りたいと思います。勤務を検索する機能(”getWorkDataFromSheet”)はすでに書いてあるので、この関数に日付を渡してあげる方法を考えるのが今回の主な課題です。
日時選択アクションを利用します ”getWorkDataFromSheet”に日付を渡すには、渡すデータをデータ型を日付形式にする必要があります。LINE上
素人が翌日の勤務(シフト)を告げるLINEbotを作った話【10】
前回、LINE画面で「勤務確認」と入力すると、日付選択画面が表示され、選択するとその日の勤務が返される仕組みを作りました。この「勤務確認」と入力させることについて今日は考えたいと思います。
まずユーザーの立場で考えると、この仕組みにはいくつかの欠陥があることがわかります。1つは、わかりづらさです。事前に「こういう機能があるよ!」と言われていても画面上にはなんのヒントもなく、実際に「勤務確認」と打
素人が翌日の勤務(シフト)を告げるLINEbotを作った話【11】
今回は、シフト変更への対応について書きます。
シフト変更機能の仕様を考える仕事をしていて、勤務が変更になることって割とよくありますよね。体調不良で休んだり、休んだ人の穴埋めでシフトが変わったり、単純に予定が変わって変更になったり・・・。
今のところ、このシステムではスプレッドシートにシフト表があり、それを編集することでしかシフト表の変更ができません。毎日流れるシフト通知はスプレッドシートを参照
素人が翌日の勤務(シフト)を告げるLINEbotを作った話【12】
今回はフォームを作ります勤務変更の処理を従業員各自で行ってもらうために、Googleフォームを利用する、ということを前回書きました。今回はフォームの内容を作っていきます。
まず、スプレッドシートのツールタブから「フォームを作成」を選びます。
すると、フォーム作成画面が現れます。表題(testの部分)は「勤務変更」とか「シフト変更」に書き換えましょう。
スプレッドシートにはフォームの回答が送ら
素人が翌日の勤務(シフト)を告げるLINEbotを作った話【13】
前回はフォームの中身を作りました。今回はフォームの回答があったときの動作について書いていきたいと思います。
まずは1回試してみます。
"たなか"の12/7の勤務は元々日勤ですが、これを遅番に変更したいと思います。
送信すると、スプレッドシートに回答した内容が反映されます。ここから値を取得して、勤務表に変更を加えていきます。
それではさっそくコードを書きたいのですが、今回のコードは今までとは
素人が翌日の勤務(シフト)を告げるLINEbotを作った話【14】
2週間ほどサボっている間に年があけていました。今年もよろしくおねがいします。
noteを始めて3ヶ月ちょっと経ちますが、ここまで書いてきたシフト確認ツールの記事もいよいよ今回で終了です。今回からはGoogleカレンダーとの連携について書いていきます。基本的に必要な機能は前回までに揃ってますので、ここからは番外編ということになると思います。
予定をLINEで通知したい筆者の所属する会社では、Go