このサイトはアドセンスやアフィリエイト広告を利用しています

開発

OpenWeather API の使い方や料金は?登録してKEYを取得する方法

天気予報APIを提供しているOpenWeather どのように登録してAPI KEYを取得して利用するかについて説明していきます。

OpenWeatherの料金プランは無料もある

こちらがAPIの利用料金になります。無料プランから初めて全部で5パターンの料金があります。金額が増えていけばできることが増えていきます。下がプランの一部です。今回はFreeプランに焦点を合わせて紹介していきます

OpenWeatherの無料プランについて

機能については以下の通りになります

APIで取得できるデータは現在の天気と3時間毎の5日間の天気予報が取得できます。
基本的な天気図も取得が可能です

APIの呼び出し回数について
60回/1分
100万回/1ヶ月

OpenWeatherの登録方法

まず、OpenWeatherのアカウントを作成します。以下のリンクから作成ができます。

https://home.openweathermap.org/users/sign_up

ユーザー名
メールアドレス
パスワードを入力

年齢とプライバシーポリシーのチェックをいれる

続きの3つのチェックは入れなくていいです。

最後のわたしはロボットではありませんにチェックを入れてCreate Accountをクリック

するとポップアップでどこでAPIを使うかのメッセージが出てきます。私は個人で利用するので、Companyは空欄、ただしpurposeの目的部分は自分にあったものを入れてください。私は大学の授業で利用するのでEducationにしましたそしてSaveを押してください

ポップアップが消えると先ほど入力したメールアドレスに通知が飛んだという記載があるので、メールを見に行く

下のようなメールが届くのでVerify your emailをクリック

そしてWebサイトに飛ぶので下のように記載されていれば登録完了

OpenWeatherのAPI KEYの発行方法

ログインして左上に自分の名前があるので、My API Keys というメニューをクリック

すると下のようにdefaultで1つAPIキーが登録されています

APIキーを追加する方法

Create Keyの下にAPI Key nameという入力欄があるので、自分で自由に決める 今回はtestで作成

Generateをクリックすると

下のようにAPI KEYが増えました。削除したい場合は xボタンを押すと削除できます

OpenWeatherの使い方

無料枠で利用できるのは現在の天気と、無料枠の天気予報、無料枠の天気図のとなります。今回は現在の天気と天気予報について解説していきます

現在の天気取得するAPI

まずは、国や都市の名前で検索する方法 

https://api.openweathermap.org/data/2.5/weather?q={city name}&appid={API key}

サンプルとして東京を検索する方法

https://api.openweathermap.org/data/2.5/weather?q=tokyo&appid=1234567

JSONとXMLの切替方法

defaultではJSONのデータが帰ってきます XMLで取得したい場合は URLの後ろに &mode=xml をつけてください

日本語にする方法

表示は英語ですが、日本語にしたい場合はURLの後ろに &lang=ja のパラメータを付けてください。ただしつけても、都市名と天気の詳細が日本語になるぐらいです。

表示単位を変更する方法

このままだと、温度や風速が、アメリカ仕様になります。華氏と摂氏を切り替えたいときはURLにしたのオプションを付けてください

ケルビン 何もつけない
メートル法 &units=metric
ヤード・ポンド法は &units=imperial

温度:単位のデフォルト: ケルビン、メートル法: 摂氏、インペリアル: 華氏
風速:単位のデフォルト: メートル/秒、metric : メートル/秒、imperial: マイル/時

それぞれの結果を表示しておきます。

今回のJSONの結果は雲が出ていますが、雨や雪の場合は以下のパラメータが追加されます

  • rain
    • rain.1h (入手可能な場合)過去 1 時間の雨量、mm。このパラメータでは測定単位として mm のみが使用できることに注意してください。
      rain.3h (入手可能な場合)過去 3 時間の雨量、mm。このパラメータでは測定単位として mm のみが使用できることに注意してください。
  • snow
    • snow.1h(入手可能な場合)過去 1 時間の降雪量、mm。このパラメータでは測定単位として mm のみが使用できることに注意してください。
      snow.3h (入手可能な場合)過去 3 時間の降雪量、mm。このパラメータでは測定単位として mm のみが使用できることに注意してください。

JSONのサンプル Default metric imperial

JSONの結果default

{
"coord": {
"lon": 139.6917, //軽度
"lat": 35.6895 //緯度
},
"weather": [
{
"id": 801, //気象条件ID
"main": "Clouds", //天気
"description": "few clouds",//天気の詳細 日本語にもできる
"icon": "02d" //天気のアイコン アイコンのURL https://openweathermap.org/img/wn/iconのコードを入れる@2x.png
        //例 https://openweathermap.org/img/wn/02d@2x.png
}
],
"base": "stations",
"main": {
"temp": 284.18, // 現在の温度
"feels_like": 281.97, //体感温度
"temp_min": 282.4, //最低温度
"temp_max": 285.26, //最高温度
"pressure": 1016, //気圧
"humidity": 24 // 湿度
},
"visibility": 10000, //視認性 メートル 最大10キロ
"wind": {
"speed": 7.2, //風速
"deg": 360 //風向き
},
"clouds": {
"all": 20 //曇り度、%
},
"dt": 1711080534, //データ計算時刻、UNIX、UTC
"sys": {
"type": 2, //内部ID
"id": 2001249,//国ID
"country": "JP", //国
"sunrise": 1711053728, //日の出時間、UNIX、UTC
"sunset": 1711097643 //日没時間、UNIX、UTC
},
"timezone": 32400, //UTC からの秒単位のシフト
"id": 1850144, //都市ID
"name": "Tokyo", // 都市の名前
"cod": 200 //内部パラメータ
}

&units=metricをつけた場合

APIKEYはサンプルですご自身のものに置き換えてください

https://api.openweathermap.org/data/2.5/weather?q=tokyo&appid=1234567&units=metric

{
"coord": {
"lon": 139.6917,
"lat": 35.6895
},
"weather": [
{
"id": 801,
"main": "Clouds",
"description": "few clouds",
"icon": "02d"
}
],
"base": "stations",
"main": {
"temp": 11.33,
"feels_like": 9.09,
"temp_min": 9.81,
"temp_max": 12.55,
"pressure": 1017,
"humidity": 22
},
"visibility": 10000,
"wind": {
"speed": 6.17,
"deg": 350
},
"clouds": {
"all": 20
},
"dt": 1711081489,
"sys": {
"type": 2,
"id": 2001249,
"country": "JP",
"sunrise": 1711053728,
"sunset": 1711097643
},
"timezone": 32400,
"id": 1850144,
"name": "Tokyo",
"cod": 200
}

&units=imperial をつけた場合

APIKEYはサンプルですご自身のものに置き換えてください

https://api.openweathermap.org/data/2.5/weather?q=tokyo&appid=1234567&units=imperial

{
"coord": {
"lon": 139.6917,
"lat": 35.6895
},
"weather": [
{
"id": 801,
"main": "Clouds",
"description": "few clouds",
"icon": "02d"
}
],
"base": "stations",
"main": {
"temp": 52.39,
"feels_like": 48.36,
"temp_min": 49.66,
"temp_max": 54.59,
"pressure": 1017,
"humidity": 22
},
"visibility": 10000,
"wind": {
"speed": 13.8,
"deg": 350
},
"clouds": {
"all": 20
},
"dt": 1711081441,
"sys": {
"type": 2,
"id": 2001249,
"country": "JP",
"sunrise": 1711053728,
"sunset": 1711097643
},
"timezone": 32400,
"id": 1850144,
"name": "Tokyo",
"cod": 200
}

XMLの結果のサンプル

XMLのほうが単位などがあってわかりやすいですね

APIKEYはサンプルですご自身のものに置き換えてください

https://api.openweathermap.org/data/2.5/weather?q=tokyo&appid=1234567&mode=xml

<current>
<city id="1850144" name="Tokyo">
<coord lon="139.6917" lat="35.6895"/>
<country>JP</country>
<timezone>32400</timezone>
<sun rise="2024-03-21T20:42:08" set="2024-03-22T08:54:03"/>
</city>
<temperature value="284.99" min="283.52" max="286.36" unit="kelvin"/>
<feels_like value="282.75" unit="kelvin"/>
<humidity value="20" unit="%"/>
<pressure value="1017" unit="hPa"/>
<wind>
<speed value="6.17" unit="m/s" name="Moderate breeze"/>
<gusts/>
<direction value="350" code="N" name="North"/>
</wind>
<clouds value="20" name="few clouds"/>
<visibility value="10000"/>
<precipitation mode="no"/>
<weather number="801" value="few clouds" icon="02d"/>
<lastupdate value="2024-03-22T05:00:08"/>
</current>

もっと詳しく知りたい場合は
現在の天気取得するAPIのドキュメント https://openweathermap.org/current
取得データ形式は JSON XML HTML


無料枠の天気予報を取得するAPIのドキュメント https://openweathermap.org/forecast5
取得データ形式は JSON XML

無料枠の天気図を取得するAPIのドキュメント https://openweathermap.org/api/weathermaps

-開発
-