今回は、気象庁の天気予報データを enebular クラウド実行環境で定期的に Airtable に蓄積するフローを作ってみましょう。Airtable は、ノーコードで使える、クラウド型のデータベース管理に特化したツールです。スプレッドシートのような操作感でデータを管理でき、enebular との相性も良いです。
気象庁の天気予報データとは
こちらの記事などが参考になります。
気象庁公式の天気予報の情報(JSON)を curl・Node.js で取得し Node.js での処理を試す – Qiita
一番伸びてるのはこれかしら。仕様の継続性や運用状況のお知らせを気象庁はお約束していないという意味で、APIではないと申し上げざるを得ないのですが、一方で政府標準利用規約に準拠してご利用いただけます。 https://t.co/QLuhI4DNDv— TOYODA Eizi (@e_toyoda) February 24, 2021
とのことで、気象庁は仕様の継続性や運用状況のお知らせを約束していないものの、政府標準利用規約に準拠して利用でき気象庁の天気予報データを取得できるので、定期的に Airtable に蓄積する仕組みを作れます。
Airtable の準備
はじめに、データを蓄積するAirtable の準備です。
Airtable の API Key の準備
スプレッドシートのようにデータ管理できる Airtable を Node-RED ノードでセットアップしてみる | enebular blog
こちらの記事を参考に、Airtable の API Key の準備しておきましょう。
データのかたまり Base を準備する
AirTable ではスプレッドシートのようなデータのかたまりを Base と呼びます。
自分のアカウントの画面から Add a base を押してはじめます。
Untitled Base ができます。
Table 1 を見ます。Name ・ Notes ・ Attachments ・ Status という列ができています。
これを今回のフローで書き出すデータに合わせて修正します。今回はとてもシンプルにします。
- Name
- 名前を Id に変更
- Notes
- 名前を Text に変更
- Attachments
- 削除
- Status
- 削除
- CreateAt
- +ボタンから新しく
Status の削除
まず Status は削除します。
Attachments の削除
つづいて Attachments も削除します。
Name の名前変更
Name の欄から Customize field type をクリックします。
こちらの画面で Name を Id に変更します。
Id に変更したら Save をクリックします。
Notes の名前変更
同じように Notes を Text に変更して Save をクリックします。
CreateAt の新規作成
Id の項目の横にある+をクリックして新しい項目を作成します。
名前を CreateAt として、タイプを Single line text でクリックします。
設定内容を確認して Create fields をクリックします。
これで作成は完了です。
初期データの削除
3 行ほど空データがあるので削除しておきます。
各行の横にチェックボックスがあるのでクリックして選択します。
3 行選択できたら、
右クリックをして Delete all select records をクリックします。
無事削除できました。
テーブル名を変更
テーブル名を Table 1 から WeatherRecord に変更します。
今回作った Base の ID を取得する
アカウントでログインした状態で REST API という各 Base の API 取得方法が見られるページに移動します。
- REST API
- https://airtable.com/api
移動して、
今回作った Base をクリックします。
INTRODUCTION が表示されるので The ID of this base is のところの app ではじまる Base ID をメモしておきます。
実行環境用のプライベートノードを準備
こちらの記事 参考に今回インポートするプロジェクトにクラウド実行環境用のプライベートノードをインストールします。
Discover Flow
今回の Discover Flow はこちらです。 → ldcp-tenki-api-record-airtable
こちらをインポートして、
エディタで表示しましょう。
Airtable ノードの設定
Airtable ノードをダブルクリックします。
テーブル名は WeatherRecord で、先ほど設定したテーブル名と同じであることを確認します。
Set API Key の横の鉛筆ボタンをクリックして、設定を編集します。
プロパティを以下のように設定します。
- API Key
- さきほどメモした Airtable の API Key
- Base Id
- さきほどメモした今回作った Base の ID
を設定して更新ボタンクリックして、
完了ボタンをクリックして、
ワークスペースに戻って保存ボタンをクリックします。
これで設定は完了です。
動かしてみる
ワークスペースにある、「タイムスタンプ」と書かれている inject ノード(図中の赤い矢印部分)をクリックします。
このように、デバッグタブに天気予報データが表示されればうまく動作しています。
Airtable の今回の Base を確認してデータが入っていれば Airtable の設定もうまく動作しています。
実行環境で 1 時間の定期実行で設定してみる
このフローを定期実行する実行環境で動かします。
新リリースのenebularクラウド実行環境の使い方 | enebular blog
上記の記事をベースに、クラウド実行環境を作成します。フローをデプロイします。
設定でスケジュールトリガーを ON にして 毎時 5 分の実行にします。
これで、1 時間ごとのスケジュール実行を設定できたので、定期的に Airtable に気象庁の天気予報データ貯めていきましょう!