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

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

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

今年５月、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) をご確認ください。

2018年の [<font color="DodgerBlue">**Code for Code チャレンジ**</font>](https://developer.ibm.com/jp/callforcode/) では、自然災害を打ち破り、地域社会や世界各地の災害準備状況を改善できるソリューションのコンペティション (インターネット経由での応募形式) が行われています。1名から最大5名までのチームで参加することができますので、これを機に自然災害への社会貢献活動として頭と手を動かし、まずは応募してみてはいかがでしょうか。参加については @ssakaigawa サンが公開されている [「IBM Call for Codeで自然災害に技術で立ち向かってみよう(参加編)」](https://qiita.com/ssakaigawa/items/ba5cabd79526863df57e) のエントリーが役に立つと思います。

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

【参考サイト】[Build your Call for Code application with The Weather Company APIs](https://developer.ibm.com/code/2018/06/18/build-your-call-for-code-application-with-the-weather-company-apis/)
[<img src="https://qiita-image-store.s3.amazonaws.com/0/146388/80be61d0-b5d6-e6b6-c988-402fe19c64ae.png" width="500">](https://developer.ibm.com/code/2018/06/18/build-your-call-for-code-application-with-the-weather-company-apis/)

# 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://qiita-image-store.s3.amazonaws.com/0/146388/4fd4fb3a-30d3-35b5-7b36-6c8c00ce15d2.png" width="600">    
<br>
2. 登録に必要な項目を入力する。 (*は必須項目です)  
<img src="https://qiita-image-store.s3.amazonaws.com/0/146388/5de4fda9-ee95-ade4-f0d3-9f52fa545217.png" width="600">

① **Name** - First (名前)、Last (姓)
② **Email** (メールアドレス)
③ **Username** (APIを利用するための任意のユーザー名)
④ **Password** (APIを利用するための任意のユーザーのパスワード)  
3. **「I agree to the terms above (上記に同意する)」**にチェックを入れ、**「SUBMIT」**　ボタンをクリックする。
<img src="https://qiita-image-store.s3.amazonaws.com/0/146388/ed087fb7-8a52-567a-5c5d-d50697d4dcd8.png" width="600">  
4. **「Register」**画面が表示され、登録が完了する。
<img src="https://qiita-image-store.s3.amazonaws.com/0/146388/c000a70b-6951-6d8f-b6c7-e149f9f73b05.png" width="600">  
5. 後は、登録したメール宛にAPIキーが記載されているメールが届いていることを確認する。(*必要に応じてメールを受信できるように設定しておいてください)
・メール送信元: The Weather Company (no-reply@wather.com)
・メール件名: [CallForCode - The Weather Company] Welcome! Your Are Registered!
<img src="https://qiita-image-store.s3.amazonaws.com/0/146388/acb14dac-4792-f84d-9b28-0eaefe5a6b41.png" width="600">

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

# 取得したThe Weather Company API キーを簡単に試してみる方法
1. [The Weather Company API Platform Siteサイト(英語)]() へアクセスし、「**Docs** (ドキュメント)」アイコンをクリックする。  
<img src="https://qiita-image-store.s3.amazonaws.com/0/146388/4fd4fb3a-30d3-35b5-7b36-6c8c00ce15d2.png" width="600">  
<br>
2. 「**Documentation** (ドキュメンテーション)」サイトが表示される。
<img width="2364" alt="DropShadow ~ document.png" src="https://qiita-image-store.s3.amazonaws.com/0/146388/96072fc5-1d97-2a80-e29f-cb5096cc07fd.png">

3. 例えば、「**Daily Forecast - v3.0** (天気予報)」を選択する。  

4. 「**Daily Forecast - v3.0**」ページが表示される。
<img src="https://qiita-image-store.s3.amazonaws.com/0/146388/b7bf4268-b9c4-2fb4-546d-c14de03db23e.png" width="600">

5. 画面の右側に表示されている「**Authorize 🔓** (オーソライズ/鍵が開いている状態)」ボタンをクリックする

6. 取得したAPIキーを「**Value**」の中に入力し、「**Authorize**」ボタンをクリックする。
<img width="3398" alt="DropShadow ~ 2b-key.png" src="https://qiita-image-store.s3.amazonaws.com/0/146388/d9cff761-b027-b970-96cb-5e67eec6e73c.png">
<br>
7. 「**Value**」がワイルドカードに、「Authorize」ボタンが「Logout」ボタンに変わって表示されたら、「**Done**」ボタンをクリックする。
<img src="https://qiita-image-store.s3.amazonaws.com/0/146388/13cf8a76-1a20-2ca5-f1e3-5faab1c24ef1.png" width="600">
<br>
8. 画面の右側に表示されている「**Authorize 🔒** (オーソライズ/鍵が閉まっている状態)」ボタンに変更されたことを確認する。変更されていない場合には、APIキーが正常に入力できていない可能性があるので、再度操作を試す。
<img src="https://qiita-image-store.s3.amazonaws.com/0/146388/ebaf08e8-ae4d-58d8-f754-cd2589af842e.png" width="600">
<br>
9. 「By Geocode」の下のGETアイコンの行をクリックし、「**Parameters** (パラメーター)」の「**Try it out** (試す)」をクリックする。
10. 表示された各項目のパラメーターを入力し、「**Execute** (実行)」ボタンをクリックする。
<img src="https://qiita-image-store.s3.amazonaws.com/0/146388/4375f05c-b9bb-5f61-1f3e-fc7aba2faf2a.png" width="600">
① **geocode** ([Geocoding](https://www.geocoding.jp/) サイトなどで場所を指定し、入手したgeocodeを指定する。こちらの例では、日本IBM本社の所在地、東京都中央区日本橋箱崎町19-21の座標: 35.67915,139.786883を用いてみた。) ※座標のカンマの間はスペースを入れない。
② **units** (今回はデフォルトのeを入れてたまま進める。) 
③ **language** (日本語/日本の場合は **ja-JP** のまま、言語指定する。)
④ **format** (今回はデフォルトの **json** のまま進める。)
⑤ **days** (今回はデフォルトの **3** を用いて3日間、今日、明日、明後日の天気予測データを取得する)

11.画面下へスクロールし、「**Response**」の「**Curl**」と「**Request URL**」を表示させる。
<img src="https://qiita-image-store.s3.amazonaws.com/0/146388/9b871095-a5a8-c819-1a9d-c8c8bdaaae4c.png" width="600">   
12. ターミナルで表示された **Curl** を実行し、パラメーターで指定した値に対するレスポンスが返ってくることを確認する。※画面はMac環境です。
<img src="https://qiita-image-store.s3.amazonaws.com/0/146388/1ee74f34-5b4a-2bf7-3157-a7c8a707d798.png" width="600">  
13. また、ブラウザで確認する場合は、 **Request URL** を開き、パラメーターで指定した値に対するレスポンスが表示されていればOKです。
<img src="https://qiita-image-store.s3.amazonaws.com/0/146388/cbe736b6-fe4d-7285-0734-c114af3b27c9.png" 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)