6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

勤務シフトを確認できるLINEBotを作ってみる。

Last updated at Posted at 2023-11-08

はじめまして。
金融業界で長年働いている事務員兼主婦です。

事務所の中でいつも飛び交うフレーズが、「今日の遅番誰?」「明日の早番は?」「明後日は何人いる?」しまいに休日に入ると「私、明日何時から出勤だっけ??」となる始末。みんな簡単にサクッと確認できるモノがあったらなぁと、覚えたてのLINE Botで作ってみようと思いました。

Let'sチャレンジ!LINE Botでシフト確認

社内にはシステムが導入されているので、スケジュールはPC画面で確認出来ます。また、CSVデータでダウンロードも可能なので、誰もが見やすいようにエクセル表に加工して掲示板にも貼り付けてあります。

しかし、個人的にはあっちのシステム、こっちのシステムに入力、スマホや手帳に写してみたり、写真を撮ったり、卓上カレンダーに書いてみたり、いったい何度スケジュールに手間をかけるのか。せっかくデータはあるのだから、わかりやすいようにしよう!
というわけで、LINEで日付を入れると出勤予定が確認出来るBotを作成してみる事にしました。

使用ツール

Make
SSSAPI
・Google Sheets
・LINE
LINE Developers

製作開始

1. APIデータに使用するGoogle Sheetsを作成

普段使用しているExcelデータに抽出用のシートを追加作成しGoogle Sheetsへ貼り付けします。

image.png

2. SSSAPIを使用してAPI化

こちらのサイトで名前を付けて、Google SheetsのURLを貼り付けします。Google Sheets側にも共有設定が必要です。
image.png

3. Makeでシナリオを作る

LINEでメッセージを受け取り→Toolsで日付文字列を読み取り→HTTPでデータを読み取り→JSONで変換し→LINEで返すイメージです。
image.png

左下から
 1.LINEモジュールはLINE Developersで作成したLINEアカウントと紐づけ。
 2.Toolsモジュールは日付表記が2023/11/01のように/がある場合は必要です。入れない場合は不要。
 3.HTTPモジュールはデータに日付検索の結果を反映させたいのですが、
image.png
いまだにデータ検索してもらえないので試行錯誤中です。
クエリを設定すれば、LINEで入力した文字列でフィルタリング出来ると記載されていますが、どうもうまく動いてくれません。

 4.JSONモジュールに当該APIのサンプルを読み込ませ認識させます。

 5.一番右のLINEモジュールに応答部分の設定をします。
image.png
JSONにサンプルを読み込ませて認識できていればTextに上記のように設定できます。

試作品

どうしても1行分のデータしか返してくれません。おそらくAPIの取得方法とHTTPモジュール設定の組み合わせに問題がありそうです。

引き続きチャレンジ

色々参考にして何度も作ってみているのですが、今のところまだうまく作動せず。他の方法にもチャレンジしていますが、まだまだ試行錯誤が必要なようです。
出来上がりましたら、ご報告させて頂きます。
引き続き、こちらの方法は時間をかけて到達させたいと思います。
今回は取り急ぎ、職場で必要に迫られているので、ノーコードでの作成を試みる事にしました。

再製作開始

1. 直接モジュールとして使用するGoogle Sheetsを作成

普段使用しているExcelデータに抽出用のシートを追加作成しGoogle Sheetsへ貼り付けします。(今回、日付の表記は/無しにしてあります。)

image.png

2. Makeでシナリオを作る

今回はGoogle Sheetsを直接モジュールとして使用するので、とてもシンプルです。LINEでメッセージを受け取り→Google Sheetsを読み取り→Routerで分岐→LINEで該当の日付があれば返す、無ければ「未登録です」のメッセージを返すイメージです。
image.png
左から
 1.LINEモジュールはLINE Developersで作成したLINEアカウントと紐づけ。
 2.Google Sheetsモジュールはシート名を選択、フィルター設定、行数設定がポイントとなります。
image.png
image.png

 3.Routerの分岐は上の部分が該当の日付があれば結果を返す、下の部分は無ければ「未登録です」を返すように設定。

上の部分(該当ありの場合)
image.png

下の部分(該当無しの場合)
image.png

 4.一番右のLINEモジュールに応答部分の設定をします。

上の部分(該当ありの場合、結果を返す。)
image.png

下の部分(該当無しの場合「未登録です」のメッセージを返す。)
image.png

完成品

感想

やっと応答が返ってきたこの達成感:raised_hands:たまらないです。
みなさんのアドバイスや先輩方の記事を参考にさせて頂きました。ありがとうございます!取り急ぎ、必要最低限で作成したとはいえノーコードだと本当に短時間でサクッと出来てしまいました。今度は一定時間にリマインドしてくれる機能を装備したいなーと早速考えてしまいました:laughing:
しかし、日付表記の部分でまだ到達していないモヤモヤ感が残っているので、そちらはまた引き続き試行錯誤していきたいと思います。

参考資料

ここまでお付き合い頂きありがとうございました。

6
3
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?