Skip to main content
search
0
codingfootballLifeSport

個人フットサルの開催通知が欲しくてスプレッドシートとGASとLINEでbotを作った話。

By 2022年2月15日No Comments

もう、週に2、3はフットサルにいく。

たらふく食って飲むために。でも一回休むとえげつない太る。

在宅ワークと引きこもりの重ね技で個人フットサルに予約。

困ったことは主に2つ

・開催最低人数10人を超えたか確認する必要がある

・日によっては予約が埋まってしまう

フットサルの試合に必要な10人が集まらないと開催されない。どれだけ早くに予約入れてても、開催決定しないと直前にキャンセルで他の予定もいれづらい。

ぎりぎりまで予約入れたくないと、侮っていると日によっては直ぐに埋まる場合がある。

10人超えた時点で通知があれば、開催決定をサイトの予約状況を見に行かなくともわかるし、少なくとも1コートの最小上限は20なので通知があった時点ではまだ予約もできる。

特定施設専用サイトではなく、全国をまたぐいくつものフットサルだけでなくサッカーやテニスなどの施設の予約プラットフォームサイトなので通知需要が無いか、もしくは通知をするにしても施設によって設定が必要だったり、開催人数を超えてもキャンセルの可能性もあるので単に最低予約数が集まったところで通知を送りづらい背景があるのではないか。

前から毎回何度も開催までサイトを訪ねてしまっていることに面倒を感じていたので、なんとかしたいとおもっていた。理想はいろいろあれど、先週末にちゃちゃっと作れる1番簡単で手間のかからない方法を考えた。

施設の予約に必要なサイト

https://labola.jp/

 

スプレッドシートでスクレイピング

スプレッドシートはgoogleが提供するエクセル的なやつ。ここにエクセルと同じく様々な関数が使えるのだけれども、そこに特定のサイトのURLとXPathを入れると値を引っ張ってくれるやつがある。

それで個サルの予約上限と残り枠数を取得。(予約数はでない)上限から残り枠数を引けば、現在の予約数がでるので取得後計算によって現在予約数を割り出す。

https://www.google.com/intl/ja_jp/sheets/about/

GASでLINEに通知

Google App Script で定期実行をし(シートの情報に変更が加わった場合)もし予約数が10以上になったら自分のLINEに通知を送るようにする。そして通知あとは記録を取っておく。記録をとって照合することで同じイベントで10以上の予約の通知を何度も受けないようにしておく。

https://workspace.google.co.jp/intl/ja/products/apps-script/

LINE Messaging API

なんだかんだメールよりも距離の近いLINE。LINEの通知はスマホとも相性が良い。スプレッドシートの情報を発信通知に利用したが、LINEで発信した情報を受け取ろうとすればできる。例えば自動応答アプリやLINEでの勤怠管理も可能とうことに様々な使い道がある。

https://developers.line.biz/ja/services/messaging-api/

感想

サーバー立ち上げや管理の必要なく、スプレッドシートやLINEのAPIを使うことで簡単にアプリが作れた。スプレッドシートの関数では更新のタイミングが不十分な可能性があるのでもしダメなら確実に情報を取得更新するためのスクレイピングをする必要があるがとりあえずは様子見の状態。サーバー立ち上げや管理の必要なく、スプレッドシートやLINEのAPIを使うことで簡単にアプリが無料で作れた。この手の自動化をしてみて、以前の自分なら自動化にかかる手間を考えていたけれどいざやってみると単純に楽しいし、作業として時間のかからないものであってもそれをしなくても良い、もしくは少なくなるという精神的な負担を減らすことや集中力・生産性の向上を感じる。関連のネタについてはメモがてらまた残していきたい。

もし同じような悩みの人がいれば個別に連絡もらえば気が向いた時に作るやも。