2014/08/18

Yahoo Web APIでお天気取得

vol.3連携記事ヽ(・∀・)ノ
76ページからの記事「C4D天気予報」に関連して、
Yahoo! Web API の導入について説明したいと思います。


Yahoo! が提供しているAPIは非常に多岐にわたりますが、今回は『天気予報』(?)ということで、

Yahoo!ジオコーダAPI 
気象情報API

の取得を目指したいと思います。


・Yahoo!ジオコーダAPI http://developer.yahoo.co.jp/webapi/map/openlocalplatform/v1/geocoder.html
・気象情報API
 http://developer.yahoo.co.jp/webapi/map/openlocalplatform/v1/weather.html

どちらのAPIも、「Yahoo! Open Local Platform(YOLP)」という、地図に関連する開発を行なうための大きなAPIの配下にあるようです。
使う前にそれぞれのページでよく仕様を確認しておくと良いと思います。
今回の利用の流れとしては、まず前者に問い合わせを行ない、それで得られた緯度経度を後者に渡して、予想降水量を得ます。

手順

まずは、Yahooの開発者サイトへ。
http://developer.yahoo.co.jp/start/

1〜6までの手順が書いてあるので、基本的にはそのとおりに進めればよいのですが(^^;
Yahoo IDでログインする必要がありますので、まだ取ってない場合はこちら
https://account.edit.yahoo.co.jp/registration



そして、今回の山場(?)、アプリケーションIDの取得です。
まず『アプリケーションの種類』では、今回は「クライアントサイド」を選択してます。今回「サーバ上」とかOAuthとかそのへん関係ないかなと思ったもので……。

『アプリケーション名』という項目があるので、マブい名前をつけて差し上げてください。

『サイトURL』が必須項目なのは、Web APIってことで Webアプリを作る前提だからですかね……?今回の使用目的とはあまり関係ありませんので、良い具合にしてください()

アプリケーションの登録が終わると、アプリケーションIDを受け取ることが出来ます。
登録したアプリケーションの管理 / 確認は、こちらから
https://e.developer.yahoo.co.jp/dashboard/

アプリケーション管理画面
先ほど登録したアプリケーションが表示されますので、アプリケーション名をクリックし、詳細画面に飛びましょう。
アプリケーションの詳細画面
アプリケーションの詳細では、アプリケーションIDほかを確認することが出来ます。
今回必要なのはアプリケーションIDだけです。アプリケーションの名前の直下と、「アプリケーションID」欄の二カ所に見留めることができます。

このIDを、それぞれのAPIの仕様に合わせてURLに組み込んでアクセスすることで、いろいろな情報を取得することができるというわけです。
ただし、問い合わせ用URLが長くなり過ぎると受け付けてもらえなくなります(2048バイト以内。)
サンプルコードのタブで、使用例を見ることが出来ます(→)。
商魂のたくましさを感じます。

先ほども書いたように、APIの種類は本当に多く、また用途が似ているものもあります。比較してみて、より意図に近いものを見つけましょう。

ちなみにAPIにはアクセス制限が掛かっていて、一つのアプリケーションIDで一日50000回まで問い合わせ可能です。
これはYahoo! Web APIの基準であり、また2014年08月現在のものです。
このあたりの制限はほかのAPIでは当然違いますし(TwitterAPIの厳しさは有名ですね)、また、将来的にはそのときどきに合わせて変更が加えられるものと思われます。
ご注意ください。

……このようにして取得したアプリケーションIDを使って、どんなお遊びツール(?)を作ったかは、vol.3誌面上にてご確認くださいw


最後に、地名から経度緯度を取得する例をおいておきたいと思います。

http://geo.search.olp.yahooapis.jp/OpenLocalPlatform/V1/geoCoder?appid={アプリケーションID}&query=京都&sort=address2


APIのアドレス「http://geo.search.olp.yahooapis.jp/OpenLocalPlatform/V1/geoCoder」とオプション群を「?」でつなぎます。
オプション群は、「オプション名」と指定したい値を「=」でつなぎ、さらにそれぞれを「&」でつなぎます。
APIごとのオプションについては、「リクエストパラメータ一覧」でご確認ください。
(→ ジオコーダAPIの例。)

こうして出来たURLをブラウザのURL欄に入力してアクセスすると、当該内容のXMLが返って来ます。
今回は「京都」という検索ワードで住所検索し、該当する位置の経度緯度を受け取っています。sort=address2 は「よく検索される住所文字列と住所階層順にソートします。」とのこと。

得られたXMLをPythonなりなんなりでごにょごにょして、なにか楽しいことをしましょうという記事でした。



vol.3「萌えるCG読本」の特設ページはこちら
既刊も含めご注文はこちらから
また、こちらのエントリで全ページサムネイルをご覧頂けます
よしなにーm(_ _ )m

0 件のコメント:

コメントを投稿