GASを使ってスポーツジムの混雑状況を取得してみる

はじめに

いつ収まるか分からないコロナ環境。健康の為に身体を動かそうとしている方も多いはず。
トレーニングは自宅でも出来るのですが、少しお金を出した方が続く方もおられると思います。
新しくジムに通ってみるのもいいかな、マレーシアでもそのままジムに通ってもいいかなっと思って、近くのジムを調べてみました。
しかし気になるのが、混雑具合ですよね。ジムでコロナに感染したら、何の意味もないので。

それで今回は、少しでもそれを回避する為に、混雑状況をあらかじめ取得しておいて、比較的空いている曜日や時間帯を知ることが出来ないかと思ってチャレンジしてみました。

どのように

今回は、題材として「東急スポーツオアシス広島」のサイトを使ってみましょう。
東急スポーツオアシスの場合、その時の混雑情報(ロッカー利用率)を15分間隔で見ることが出来ます。しかし、その時の今の状況だけなので、何時、何曜日が良いのか分かりません。

では少しどのようにこの値を公開しているのか中身を覗いてみましょう。

Chromeで、その利用率が出ているところで、右クリックして、「検証」を選択してみてください。するとこの画像のアドレスを取得できます。

アドレスをもう少し覗いてみましょう。こんなアドレスです。

https://cloud.motionboard.jp/motionboard/rest/chart/get/image?boardpath=%2FWEB%2Fsh08&mbitem=ITEM_1-10&tenant=c2206opu&id=WEB&width=200&height=150

今回の場合は、アドレスから見る限り「MotionBoard」と言われるパッケージアプリを利用して、そこから値を画像で取ってきていることが分かります。
この仕様は一般公開されているので、こちらを見ると、パラメータを変えると色々と使えそうです。

今回は、特にいじらずに、そのまま利用したいと思います。

ではこの画像を1時間くらいずつで取得して来ることが出来れば、混雑状況が分かりそうですね。方法は色々ありますが、ずっと動かすわけではないですし、今回は一番簡単にGASを使ってみたいと思います。

今回のプログラムの内容はこんな感じにしたいと思います。

1時間ごとに、混雑状況の画像を取得し、Googleドライブに保存する。って感じで。

1.まずGoogleドライブに、画像を保存するフォルダを作成しましょう。作成後、この部分の文字列をメモしておきます。

2.GASのページに行き、「新しいプロジェクト」をクリックしましょう。
その後、下記のようなスクリプトを書きます。

function myFunction() {
  let today = new Date();
  let yyyymmddhhmmss = Utilities.formatDate(today, "JST", "yyyyMMddHHmmss");
  let hiroshima_url = "https://cloud.motionboard.jp/motionboard/rest/chart/get/image?boardpath=%2FWEB%2Fsh08&mbitem=ITEM_1-10&tenant=c2206opu&id=WEB&width=200&height=150";

  let hiroshima_res = UrlFetchApp.fetch(hiroshima_url);
  let hiroshima_image = hiroshima_res.getBlob();
  let dir = DriveApp.getFolderById("XXXXXXX");
  hiroshima_image.setName("TEST_" + yyyymmddhhmmss + ".png");
  dir.createFile(hiroshima_image);
}

※1.XXXXXXXの部分には、先ほどGoogleドライブのアドレスでメモした値を入れます。
※2.一度、テストで動かして、動くか確認しておいてください。

3.トリガーとして登録します。時計のマークを選択し、「トリガーを追加」を選択します。

4.「1時間ごと」になっていることを確認し、「保存」を選択します。

これで完成です。あとは1時間ごとにかってに画像を取得してきてくれます。
あとは画像を見れば、傾向の分析が簡単に出来そうですね。

まとめ

いかがだったでしょうか?
ちょっとプログラムを組むだけで、簡単に情報収集が出来ちゃいます。それに無料の環境ですべて出来るのは本当に便利ですよね。
今回はスポーツジムを題材にしましたが、皆様もうまく活用してみてはいかがでしょうか?

IT

Posted by スングル