世界の天気API「OpenWeatherMap」の無料APIキー発行・取得、リクエスト方法

各地の色々な地域の天気情報をAPIで取得したい場合にオススメなのが、「OpenWeatherMap(オープンウェザーマップ)」です。

OpenWeatherMapでは無料利用できるAPIで、世界中の天気情報をJSONで入手できます。

今回、OpenWeatherMapのAPIキーの発行方法と、APIリクエストを実行する方法を解説します。

天気情報をAPIで取得する

APIによる情報取得として一般的なものに天気があります。

晴れやくもり、雨や、最高気温・最低気温、湿度といった情報は、日常生活する上でも必要です。

さらに天候によって左右される農業や、雨の日だと売上が大きく変動するコンビニなどでも天気は重要な情報です。

天気情報をAPIで自動的にプログラムで取得し、天気や気温、湿度によって分析結果を導くことで、利益を生み出すことができます。

以前までは日本でよく使われていた天気情報を取得するAPIとしては、Livedoor天気がありました。

Livedoor天気をAPIで取得し、LINEやSlackに投稿するというプログラムがよく紹介されていました。

しかし、Livedoor天気は2020年7月31日に終了し、APIも利用できなくなってしまいました。

天気APIは無料(機能制限あり)のタイプが多い

天気情報をAPIリクエストで取得できるサービスは、Livedoor天気が終了してしまいましたが、まだまだ色々なサービスがあります。

その中には完全有料のサブスクリプション型のAPIサービスもありますが、多くは無料+有料で利用できるAPIです。

無料で利用できる天気情報のAPIの多くは、リクエスト回数が1日に○回までと制限されていたり、取得できる天気の予報が数日先までしか取得できなかったります。

完全にビジネス目的である場合や、実施内容が決まっている場合は、条件を満たした有料サービス利用が推奨されますが、トライアル利用などの場合は無料の天気APIがオススメです。

無料でオススメなOpen Weather Map

そんな無料で利用可能な天気APIでオススメなのが、「Open Weather Map(オープンウェザーマップ)」です。

オープンウェザーマップは日本だけでなく、世界中の天気についてAPI経由で取得することができます。

さらに、現在の天気から、5日先までの3時間ごとの天気情報が取得可能です。

有料版と無料版での機能を比較すると、リクエスト回数の制限と、取得できる天気予報の日数に違いがあります。

しかし、Open Weather Mapの無料版APIでも1分間に60リクエストかつ1ヶ月100万リクエストと十分な性能です。

Open Weather MapのAPI取得方法

Open Weather Map(オープンウェザーマップ)のAPIキーを取得する方法についてスクショを使って解説したいと思います。

①Open Weather Mapの会員登録→②APIキー取得という流れで手順を説明していきます。

1.Open Weather Mapのページにアクセスし、右上にある「Sign in」をクリックします。

2.まず会員登録を行うために「Create an Account」をクリックします。

3.名前とメールアドレス、ログインパスワードを2回入力します。16歳以上であることと規約に同意するにチェックを入れます。

4.スクロールすると「私はロボットではありません」の確認を行い、「Creat Account」ボタンをクリックします。

5.APIをどういった目的で利用するか聞かれるので、Purposeの部分に記入し、Saveボタンを押します。(Companyは入力不要)

 

※今回は、Education/Scienceで入力しています。

6.会員登録で入力したメールアドレス宛にOpenWeatherからメールが届くので、「Verify your email」をクリックし、メール認証を行います。

7.再びOpenWeatherMapのページがブラウザで表示され、メール認証が成功した旨のメッセージが表示されるので、会員登録が完了です。

8.上図の赤枠下にあるメニューから「API keys」をクリックし、APIキーを取得します。

Keyの下にあるAPIキーを使うことで、APIが利用できるようになります。

以上の8Stepでオープンウェザーマップの天気を取得するAPIを取得することができます。

ブラウザでOpen Weather MapのAPIリクエスト

取得したオープンウェザーマップのAPIを使って、実際に天気のデータを取得してみます。

オープンウェザーマップのAPIはHTTPのgetを使ったリクエストのため、Chromeなどのブラウザでアドレスバーにリクエスト用URLを打ち込むだけで取得可能です。

今回は無料版で利用可能な以下の2つをAPIで実行します。

  1. 指定した都市の現在の天気を取得する
  2. 指定した都市の先5日間の3時間ごとの天気を取得する

指定した都市の現在の天気を取得する

1つ目のAPIリクエストとして、オープンウェザーマップの現在の天気を取得してみます。

以下のようにパラメータ付与したURLで、指定した都市の現在の天気を取得するAPIをコールします。

http://api.openweathermap.org/data/2.5/weather?q={city}&appid={key}&lang=ja&units=metric

URLパラメータとして、4つほどパラメータが付与されています。

qには天気を取得したい都市を「Tokyo,JP」といった形式でセットします。

appidには事前に取得したAPIキーをセットします。

残りのlangパラメータは「ja」で日本語出力とし、unitsパラメータは「metric」にして温度の単位を「℃」にします。

そうして用意したAPIをChromeブラウザのアドレス欄に入力し、実行してみます。

上図のように、オープンウェザーウェブのAPIをコールすると、JSON形式で天気情報が返却されます。

Key情報は英語になっていますが、weatherの中に「main:Clouds」と書かれており、実行時の東京の天気は曇りであることが分かります。

  1. temp:平均気温
  2. temp_min:最低気温
  3. temp_max:最高気温
  4. humidity:湿度

といった天気情報で必要となる情報がOpen Weather MapのAPIで取得できました。

指定した都市の先5日間の3時間ごとの天気を取得する

続いて、5日先までの天気予報についてもAPIをコールして取得してみます。

5日先までのオープンウェザーマップの天気予報を取得するAPIのリクエストURLは以下になります。

http://api.openweathermap.org/data/2.5/forecast?q={city}&appid={key}&lang=ja&units=metric

先程はパラメータ入力直前が「weather(天気)」でしたが、「forecast(予報)」に変化しています。

入力するパラメータについては、前者と同様で、天気を取得したい都市とAPIキー、日本語、単位は℃をセットします。

5日間の天気予報のデータもjson形式で返却されます。

東京都の5日間先までの3時間ごとの天気情報(計40)を得ることができました。

なお、時間も表示されていますが、日本時間(JST)による表記ではなく、標準時間(UST)なので注意が必要です。

プログラムの中で、時間を日本時間に変換する処理を実装する必要があります。

まとめ・終わりに

今回、現在の天気や未来の天気予報を取得できるAPIとして、Open Weather Map(オープンウェザーマップ)のAPIを紹介しました。

オープンウェザーマップのAPIは無料で利用でき、世界中の天気情報を5日先までの天気予報も得られるのでとても便利です。

APIのリクエストもhttp-getでjsonデータを取得できるので、とても簡単です。

Google Apps Script(GAS)でコードを書いて天気情報の通知ツールを作ったり、Pythonで天気情報と売上データなどの分析も可能です。

今回はブラウザでAPIリクエストする方法を紹介しましたが、またGASやPythonでの実行方法について解説したいと思います。