降水確率と気温を知らせてくれるLINEボットがほしい
以前、毎月家賃の振り込みのリマインドをしてくれるボットを作った(前に住んでいた賃貸の家賃が自動引き落としできなかったからつくったのだが、今はもう引っ越して自動引き落とししているのでお役御免になったけど)。
最近は気温の変化が激しくて、会社行く前に何を着ていくか悩む。ひさしぶりにGAS(Google Apps Script)もさわってみたいと思っていたので、GASを使って毎朝天気の情報を教えてくれるLINEボットをつくることにした。私はいつも
- 降水確率
- 気温
をチェックして傘を持っていくか&服装を決めているので、この2つの情報を知らせてくれるボットにする。
天気の情報は気象庁のJSONファイルからとる
天気の情報をどうやって取るかだが、今回は気象庁が公開しているJSONファイルを利用することにする。気象庁の職員の方の話では、仕様の継続性などは保証されていないのでAPIではないものの、利用規約に準拠していれば自由に使える。
一番伸びてるのはこれかしら。仕様の継続性や運用状況のお知らせを気象庁はお約束していないという意味で、APIではないと申し上げざるを得ないのですが、一方で政府標準利用規約に準拠してご利用いただけます。 https://t.co/QLuhI4DNDv
— TOYODA Eizi (@e_toyoda) February 24, 2021
今回つくるボットはWebサービスとして公開するわけではなく自分用のものなので、仕様が変わっても都度修正すれば特に困らない。ありがたく使わせてもらう。
JSONのURL&中身を見てみる
JSONのURLだが、例えば東京だと以下のものになる↓ URLの130000がエリアコードになっているので、これを変えることで、自分が取得したい地方の気象情報を取得することができる。
https://www.jma.go.jp/bosai/forecast/data/forecast/130000.json
エリアコードの調べ方だが、気象庁の天気予報ページから見たいエリアを選択すると、URLにエリアコードは表示される。例えば以下は東京の予報ページ。area_code=130000という部分でエリアコードがわかる。
https://www.jma.go.jp/bosai/forecast/#area_type=offices&area_code=130000
JSONファイルだが、このままではわかりづらいので以下のようなJSONを綺麗にしてくれるサービスで変換して内容を確認してみた。
https://tools.m-bsys.com/development_tooles/json-beautifier.php
JSONファイルを読み解くと、例えばGASで降水確率を読みたいなら
JSON[0]["timeSeries"][1]["areas"][0]["pops"][i](iは読みたい時間帯を指定)
気温を読みたいなら
JSON[0]["timeSeries"][2]["areas"][0]["temps"][i](iは読みたい時間帯を指定)
のように指定すれば読めそう。次回は実際にGASで気象庁のJSONをパースして、降水確率と気温を取得するテストをやってみる。
日記まとめ
この日記のまとめは以下にまとめています。ボットは無事に完成しました。