以前からグルコスの設置店舗をGoogle Mapで見られるマイマップを管理していた. drive.google.com
リストの管理はマップ上から手動で行っていて,公式情報と照らし合わせることや,編集が難しいことがあり更新が間に合っていない状態だった.
マイマップのインポートはスプレッドシートから行えることを知り,Google Apps Script(通称GAS)を使うことで,スプレッドシートを自動で更新できるのではないかと考えた.
データは定期的に更新したいので,下の記事を参考にLamdaからAPI経由でGASを叩くようにしてみる.
その途中http://groovecoaster.jp/locationをPythonでスクレイピングしていると,店舗データがjsonで提供されていることに気付く.
ここでGASでjsonどう扱えるのか調べてみるとGAS自体にUrlFetchApp.fetch
というGETを行えるメソッドを発見し,GASのみでリストの取得・更新ができるようになった.
ところがマイマップはインポートしたスプレッドシートと同期するわけではなく更新ができない.更新するには新しくレイヤを作ってインポートをするという手間が挟まる上,レイヤの見た目変更も手間が多く間違えやすい.
しかし,マイマップAPIも昔に終了しているのでここの自働化はひとまず諦め,GASからウェブアプリケーションを作り,
- URLにアクセスする
- スプレッドシートの更新が走る
- 更新終了後,マイマップのリンクと更新手順を表示する
という方法で半自動更新を実現した.アクセスすると下のように表示される.
手動で更新してた頃に比べ台数の情報も確認できるようになったので自分でも便利に感じる.
例えばこんな感じで遠征に超便利なのでみんな使ってくれ! pic.twitter.com/8zXvzy2vaJ
— 殴るとチョコレートを置いて逃げる犬 (@cohalz) 2018年4月1日
ちなみに更新頻度やグルコス公式の鯖の負荷を考え,URL及びスプレッドシートは非公開で自分のみアクセス許可にしている.
作ったGASはこちら.
Groove-Coaster-Tool/reload.gs at master · cohalz/Groove-Coaster-Tool · GitHub