超高速開発ツール”Wagby”で端末の位置情報を使って天気を自動的に記録する

超高速開発ツール”Wagby”で端末の位置情報を使って天気を自動的に記録する

今回は、前回作成した位置情報を取得する機能を利用して、その場所の天気を自動的に記録する機能を追加してみます。

OpenWeatherMapのAPIキーを取得する

天気のデータを取得するために、”OpenWeatherMap“を使います。OpenWeatherMapが提供しているAPIを使うためには、ユーザー登録したうえでOpenWeatherMapのAPI Keyを取得する必要があります。無料のプランをはじめとしていろいろとプランがありますが、今回は無料のプランで実験してみます。

まずはアカウントを登録します。

f:id:cycle8b:20170331131457p:plain

アカウントを登録すると、マイページ的な画面にAPI Keyが表示されます。

f:id:cycle8b:20170331131819p:plain

OpenWeatherMapのAPIを試してみる

API Keyを使って現在の天気を取得します。緯度・経度から、その地点の現在の気象情報を取得する場合には、次のようなURLで取得できます。

http://api.openweathermap.org/data/2.5/weather?lon={経度}&lat={緯度}&APPID={OpenWeatherMapのAPIKey}

詳しい使い方は↓をご確認ください。

2017-04-02 追記) パラメータの”緯度(latitude)“と”経度(longitude)”が逆だったので修正しました。毎回、どっちがどっちか、分からなくなってしまう・・・。


f:id:cycle8b:20170331164327p:plain

試しにこのURLをブラウザのアドレスバーに貼り付けてアクセスすると、次のような結果が得られます。(画像は、東京 丸の内の気象情報を取得した結果です。)

結果がJSON形式で返ってくるので、これをWagbyで読み込み&編集して、DBに保存します。

Wagbyに都市名と天気を保存する項目を追加する

前回作成した投稿モデルには、DBに保存しない隠し項目緯度経度が追加されています。今回はこれに、都市名天気を追加します。それぞれ、次のような型で作成します。

項目名項目ID型の詳細
都市city_name文字列文字列
天気weather文字列文字列

APIで取得した値を、登録時の初期値に設定する。

都市天気登録時の初期値として、それぞれの項目に式を設定します。(APPIDはご自身のAPI Keyを指定してください。)

f:id:cycle8b:20170331184452p:plain

都市

JSONPATH(
  HTTPSEND(
    CONCATENATE(
"http://api.openweathermap.org/data/2.5/weather?lon="
, TOSTR(${longitude}) , "&lat=" , TOSTR(${latitude}) , "&APPID=84xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx") )
, "name" )

天気

JSONPATH(
  HTTPSEND(
    CONCATENATE(
"http://api.openweathermap.org/data/2.5/weather?lon="
, TOSTR(${longitude}) , "&lat=" , TOSTR(${latitude}) , "&APPID=84xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx") )
, "weather[0]['description']" )

ビルド&確認

f:id:cycle8b:20170331181826p:plain

投稿を保存すると・・・

f:id:cycle8b:20170331184337p:plain

都市・天気が保存され、一覧に表示されています。

Recommended
超高速開発ツール"W…