Call for CodeでThe Weather Company APIを試してみよう (開発編) 2019年版

皆さん、こんにちは。戸倉彩です。

2018年は、グローバル規模で経済的にも大きな損害をもたらした悲惨な自然災害に見舞われた年でした。日本も例外ではなく、台風や地滑りなど、気象関連の災害も続きました。

2018年５月より、IBMとパートナー各社は [**「<font color="DodgerBlue">Call for Code</font> (読み方:コールフォーコード)」** ](https://developer.ibm.com/jp/callforcode/)を発表し、自然災害を防ぐこと、自然災害に対応すること、そして自然災害から回復することをテクノロジーで解決しよう！という取り組みがスタートしました。ぜひ、国内のエンジニアさんにも注目していただきたいと思います。
※詳細については [ニュースリリース](https://www-03.ibm.com/press/jp/ja/pressrelease/54021.wss) をご確認ください。

2019年の [<font color="DodgerBlue">**Code for Code チャレンジ**</font>](https://developer.ibm.com/jp/callforcode/) では、『自然災害』 をテーマに、地域社会や世界各地の災害準備状況への備えや、発生後の地域社会やヘルスケアの回復に貢献できるソリューションのコンペティション (インターネット経由での応募形式) が行われています。1名から最大5名までのチームで参加することができますので、これを機に自然災害への社会貢献活動として頭と手を動かし、まずは応募してみてはいかがでしょうか。Call for Codeへの参加方法については @nishikyon 氏がが公開している [Call for Code チャレンジ 2019 に参加してみよう!](https://qiita.com/nishikyon/items/4b60b31561cbbb6ff0e7) のエントリーをご覧ください。

今回は、この Call for Code チャレンジ にともない、 <font color="HotPink">**期間限定**</font> で公開されている世界の気象データにアクセスできる**<font color="DeepSkyBlue">「The Weather Company API」</font>**についてご紹介いたします。

【参考サイト】[Blog - Call for Code: The Weather Company and you](https://developer.ibm.com/callforcode/blogs/call-for-code-the-weather-company-and-you/)
[<img src="https://gp7fsa.by.files.1drv.com/y4mb9wm9Vtd6sGJ9-p-tJsW8T_QTytJvaXpvRMMhmFeKEn4IKFpb5hmOvSKGSfjgOgaj-sU9A4PYba76pfWtgr2isoYwV0u12fbjHAwmngUJSXMZdMTjfW1vbIYRXdl8ZLjMlyCJgS--suKpgkbHBARyiLl1-o2ufa7cus0Ip9zsteoAr7vhxMftwgMe-O5cjw6mVx_4we3JoAsXYsof1LKlQ?width=1070&height=990&cropmode=none" width="500">](https://developer.ibm.com/callforcode/blogs/call-for-code-the-weather-company-and-you/)

# The Weather Company APIとは
世界で毎日5億人以上にあらゆる形式で気象サービスを提供するIBMグループ企業の「The Weather Company」は、高精度な気象予報データをAPIとして提供しています。IBM Cloudから「Weather Company Data」サービスとして有料で使用することができますが、日本を含めた一部の国または地域ではご使用いただけない場合があります。
**<font color="DarkBlue">【IBM Cloud 管理者向けダッシュボードのWeather Company Data 作成画面】</font>**
<img src="https://qiita-image-store.s3.amazonaws.com/0/146388/449876c0-d7bc-32f4-a208-3456e392d114.png" width="600">

## 期間限定で日本の地域も利用可能に

 現在、Call for Codeチャレンジに参加する開発者の方々が、気象データを自然災害対策のソリューションに組み込むことで、よりダイレクトでリアルな解決策を実装できるように、**下記のThe Weather Company APIを無料で利用** することができるようになりました。

 * [Data Core](https://business.weather.com/resource/core-data-package-brochure) : 現在の状況や予測の画像の衛星データなど、最も重要な気象情報です。
 * [Enhanced Current Conditions](https://business.weather.com/resource/brochure-the-weather-company-data-package-enhanced-current-conditions) : 現場で利用可能な最高解像度の気象観測ネットワークの1つで、従来の情報源に加えて275,000を超えるパーソナル気象観測点をベースに構成されています。
 * [Enhanced Forecast](https://business.weather.com/resource/brochure-the-weather-company-data-package-enhanced-forecast) : 天気予報エンジンには、最先端のアンサンブルモデル予測、200人以上の気象学者および関連する科学者の専門家、The Weather Companyの観測ネットワーク、レーダーなどの機能が含まれます。 
 * [Severe Weather](https://business.weather.com/resource/brochure-the-weather-company-data-package-severe-weather) : 雹、雷、激しい風、竜巻などの悪天候な気象データの予測を含みます。

是非、この機会を積極的に活用してみましょう。

# The Weather Company API ユーザ登録方法
1. [The Weather Company API Platform Siteサイト(英語)](https://callforcode.weather.com/) (https://callforcode.weather.com/) へアクセスし、「**Sign Up** (登録)」アイコンをクリックする。  
<img src="https://gp7esa.by.files.1drv.com/y4mw6hKLZTUPaeQhtyUsDu7x8HQ065RrSjuDN9ceYlS-TZ0x9wHvcWzMWuDNLo3hWd2ZoeJW9uYKWRRX6Nee98JRmY-9xH7o-_8SegNDpl7M26oBTTM7EOHfK3foSvGNxhZtn9nVsXVXCWJwGNkyFxkk9K2HmVg7nPPsmhBnw6ykrVD3bWIuY6lcl5Em2BdWJFyRngKQrFmP9jtiZMGpqqEqQ?width=1286&height=948&cropmode=none" width="600">    
<br>
2. 登録に必要な項目を入力する。 (*は必須項目です)  
<img src="https://gp7dsa.by.files.1drv.com/y4msalFeaPLqmNnyB-ctUQ2tURP31f2rQesXM-4gV2cnZj9cs73a4Wd5OT0tol4XVXklWun4mn0ytLYXgjK_rJzWhktPbt3CSdcRJTPWVo84Sj9gWDORmHBtJrztyGbYEI1sik_n10gv9lFr7v5_HEbFgojFz_S2H3yWsimPuYQ22av3kBj3gJ2jzP895ZU0HXufIf04gyrj2DlyY7MxdOQ-A?width=532&height=585&cropmode=none" width="600">

(1) **Name** - First (名前)、Last (姓)
(2) **Email** (メールアドレス)
(3) **Username** (APIを利用するための任意のユーザー名)
(4) **Password** (APIを利用するための任意のユーザーのパスワード)  
3. **「I agree to the terms above (上記に同意する)」**にチェックを入れ、**「SUBMIT」**　ボタンをクリックする。 
4. **「Register」**画面が表示され、登録が完了する。
<img src="https://gp7csa.by.files.1drv.com/y4m_j7Kql956muiLMlqM1WsuHy-9Z1PMQ-dRKwPyR3QEC_xDu-MCx135zypvesbdmbyTGGAWJV0K2hYq3C5dW9OjFE8Ea50TnIpV9D5nnKdarY1CBOC19JiJaDcfZq-mFVKgMtpyRRDG0Y_YxnfQ91Ivrz-SspOqjhAxnnnDqdH2kzkMyb1NpfaNcTMZhUD4D8U7urUTHJNnXQSlRb5_ZiE6Q?width=746&height=479&cropmode=none" width="600">  
5. 後は、登録したメール宛にAPIキーが記載されているメールが届いていることを確認する。(*必要に応じてメールを受信できるように設定しておいてください)
・メール送信元: Call for Code (noreply@weather.com)
・メール件名:  [API Platform] Your username and password info

とくにトラブルが無ければ、ほんの数分で取得することができるかと思います。

# The Weather Company API キーを取得する方法
1. [The Weather Company API Platform Siteサイト(英語)]() へアクセスし、「**Docs** (ドキュメント)」アイコンをクリックする。  
<img src="https://gp7esa.by.files.1drv.com/y4mw6hKLZTUPaeQhtyUsDu7x8HQ065RrSjuDN9ceYlS-TZ0x9wHvcWzMWuDNLo3hWd2ZoeJW9uYKWRRX6Nee98JRmY-9xH7o-_8SegNDpl7M26oBTTM7EOHfK3foSvGNxhZtn9nVsXVXCWJwGNkyFxkk9K2HmVg7nPPsmhBnw6ykrVD3bWIuY6lcl5Em2BdWJFyRngKQrFmP9jtiZMGpqqEqQ?width=1286&height=948&cropmode=none" width="600">  
<br>
2. 「**Documentation** (ドキュメンテーション)」サイトが表示される。
<img src="https://gp7bsa.by.files.1drv.com/y4m4nJPymOJeOGKibLMO5xvlxQnhMi5LcP6SMC_wJyct-yCNBFirtFwYq1hP6ircLfwZRMn43LAYQo3Mgl9_YK03HkjqLyDrDtqGnQMBC9DQXMvhRpGZA4IP-GItHuD9D2xBQTeMbJM3awsTOFwvh_qkMxiHKs5jihSSextTAcyxAg5OHzZYzGu1IxDROMJOV9Zi0C5U5hMh3CO3uTmF5SOSA?width=749&height=481&cropmode=none" width="600">
3. 画面右上の「**REGISTER**」ボタンをクリックする。
4. 「**My API Key**」が表示される。※これがThe Weather Company API Keyとなるため大切に保管してください。  
<img src="https://gp6qsa.by.files.1drv.com/y4mkT_0ZqEmIMq4a1q69t_EUkWKIjUjCf7FdaGzo6oR5uSZjiomnRPfOn2BR63TsrH3CyUJ56Xto_g7ZfK-ZRUxMOSbVbH1qN57t-cBpME_jW1F8NE2gvwnSBGA8VFnz_W8UsmZyrpTkw2dg-iv6rXxUl7Kib8B1ksVjf66yn6r4en6awVqZK0iLghMf6CHwFZOAIKgZhR5UuD9_nNcNvV4Wg?width=673&height=484&cropmode=none" width="600">

# 取得したAPIを簡単に試してみる方法

1. 「**DOCUMENTATION**」画面に戻り、例えば、「**Daily Forecast API** (日毎の気象予報データのAPI)」を選択する。    
2. 「**Daily Forecast API**」ページが表示される。  
<img src="https://gp7asa.by.files.1drv.com/y4mr_BosfiMDANkhZrnYFIlOhSVzfoJPBW9TJAPCshOZ5-DfRu3lizda5HXNPs03Q16v699Qt8Mw9fr96AkuuyuXvxmHytJToG5v2JuPYldZdb5uG5VCFm_tNmt-nTvI5pBwGXhJTQFhiplm7N3arn-gt0AK29jWCKnojWvgWsb65UyH3qDzdrgiar2TO8aPT21J1XrMkKayqHIkg_w3OfYIA?width=693&height=478&cropmode=none" width="600">
3. 画面の右側に表示されている「**Authorize 🔓** (オーソライズ/鍵が開いている状態)」ボタンをクリックする
4. 取得したAPIキーを「**Value**」の中に入力し、「**Authorize**」ボタンをクリックする。
<img src="https://gp6psa.by.files.1drv.com/y4m8_wLB9yzpcWlVK7S_pTt9aa2UJExSBzQvjEljb_dcHRQs_ZyBHkkW21iNFDd1GT4yoy-zQhj7hkUSMFmCTr7cLUDtpWLw7S7YsElumUAXA5jZLOg_uvGFB_T4JBiFyn4qqmGOq83cMIvW2QNadVIwP7EPh10m3zlhgHO2DbepW3-tuQX7y3sMaVVUJ3AJs3xy3g-NwJr-BnA8Q4AUTLi1w?width=601&height=314&cropmode=none" width="500">
5. 「**Value**」がワイルドカード( ****** )に、「Authorize」ボタンが「Logout」ボタンに変わって表示されたら、「**Close**」ボタンをクリックしてポップアップ画面を閉じます。  
<img src="https://gp69sa.by.files.1drv.com/y4mktFxDBlzaVdFL03kQLSR52reIOiaqOYycsLBVvycAXzfrtjTBZcTRiZxsWm5GYUoLWvF1GDv9rNHEyfLIb2y_mZ0uueSEX0Mv9m9alO9NZ97DLCvMyQ0rsESKjilW19lRm3ZkAupNSkvQFr6ySbYuLsNnF2G_tFhkq5s2Nlia9NGleLt0vMTYU6Vqy7DmxoUwLSGoP5RRx38aws7X8qUXw?width=613&height=321&cropmode=none" width="600"> 
6. 画面の右側に表示されている「**Authorize 🔒** (オーソライズ/鍵が閉まっている状態)」ボタンに変更されたことを確認する。変更されていない場合には、APIキーが正常に入力できていない可能性があるので、再度操作を試す。  
<img src="https://gp68sa.by.files.1drv.com/y4mC6qvwR-_zmAHK9qhWyDrlnCPVVtw4fb_WmLNE2s8IPH3VemgeaaENQAFvrLJR21pkOJGCmRyImM5BxEjPCPhELf5dAnPv756K2ZPROIZBsvxGnt4zj7tDm1CeM0b7NH27wuGGSOgmjeVUaK2EW12jyW1osxujdaV5FahaJEMTRxTR8ENTsOc_R8AM7RztLlevrTWJSTViN0J4Gx1_qBWQw?width=196&height=87&cropmode=none" width="300">
<br>
7. 「**default**」の1行目「**[GET]/v1/geocode/{latitude}/{longitude}/forecast/daily/{days}day.json** Forecast by Geocode」をクリックする。
8. 「**Try it out**」ボタンをクリックする。
9. 表示された各項目の「Parameters(パラメータ)」を入力する。
<img src="https://gf7fsa.by.files.1drv.com/y4ms-QRU20XcMnCalTq4SCC3c4jlnAjJKt0R7_aQR7bH4JyyWoJuNEnGAFgkBDSd4NVu9hW2OsLNOHCvxvjPRvZtSU9PikmyIxCgrULKYWVucKCUToSteRlET5SNJardjIzdJzoyOCPZKVl2t9maE1ZMgRMvOm7uyKGu3GPVbouSVDm5sZtjReIgawIvXY3R8INUiKn64SeNAv5fxE13dAheQ?width=669&height=538&cropmode=none" width="600">  
**geocode** ([Geocoding](https://www.geocoding.jp/) サイトなどで場所を指定し、入手したgeocodeを指定する。こちらの例では、日本IBM本社の所在地、東京都中央区日本橋箱崎町19-21の座標: 35.67915,139.786883を用いてみた。)  
(1) **latitude** (緯度)  
(2) **longitude** (経度)  
(3) **language** (言語指定: 日本語/日本の場合は **ja-JP**を指定する)  
(4) **Accept-Encoding** (デフォルト: gzip、レスポンスが確実に圧縮されるようにするには、gzipに設定する必要があります)
10. 青い「**Execute**」ボタンで実行する。
11. 画面下へスクロールし、「Response」の「Curl」と「Request URL」を表示させる。  
<img src="https://gf7esa.by.files.1drv.com/y4m1zwErZUs9FLRWo0WCt16NhFiyPH_QXW7UhKfPdIm7UU9TakECJVffpKpPeNLCzss2Zm6psU8dvbPASNRcM7hyaosrlPmQ5oHzTUSVD6NpGKRMKFCMf6Udxm8p035X-4-OG-9mdQ71e95bdoxbkzdNUPMKiY2SzSsw7s5Yh4WEuxnZ9bv2i43jM9_gI2kgO1tQFa2KAXLamWLfMWuB60Jvg?width=858&height=217&cropmode=none" width="700">
12. ターミナルで表示された **Curl** を実行し、パラメーターで指定した値に対するレスポンスが返ってくることを確認する。※画面はMac環境です。  
<img src="https://gf7dsa.by.files.1drv.com/y4moVErRVUlKeQKXVZgA2oXnZKgTxpz0daXwR_E8zTtXMZN_8CqIsuhzCcr0K9K_g7SXfNFjhO-K_xJBjMlIXZV4AGYCeXVFlpSUCGUT09dn1JTH6gqeYgT9f2NAssYc7vwUX3nu1zed8tBJFXYav2lVIvafPYYc2RzivYFajZjpaPUauwQK-bJ8iUnR5UhwLpXNTq6mHwKTd11niO-I26WRg?width=712&height=383&cropmode=none" width="600">
13. また、ブラウザで確認する場合は、 **Request URL** を開き、パラメーターで指定した値に対するレスポンスが表示されていればOKです。 
<img src="https://gf7csa.by.files.1drv.com/y4mCwExWh_YKP8zsoq7s707-Oe94t7F1HbL2EkM0cyM7ZYZJbeezB3V6sxTWuKTm6trkIlqSLOCRhHhvNcoIoSAy5vErUA8MNIdVt4DlkbWftA6S5sVKwp63tQY_Rvysjipz3ggp_10xukeZLZUvxH8nSXZTLAogHoLZKHzMVo2hXBEeIG-1kvthjmHmdsgCTrnA8Avuup7e48OVZh8WcIHjw?width=583&height=447&cropmode=none" width="600">

## 最後に
[<font color="DodgerBlue">**Code for Code**</font>](https://developer.ibm.com/jp/callforcode/) の参加を目指して、今回取得した **The Weather Company API** を組み込んだアプリ開発にチャレンジしていただけることを、一人のエンジニアとしても願っています。災害リスクを軽減し、より良い未来を築くのを支援するために、引き続き技術情報を分かりやすく投稿していきたいと思います。

今回は以上です。

Have a nice Geek Life♪　　
※Twitterで最新情報配信中 [@ayatokura](https://twitter.com/ayatokura)