「「駅すぱあとWebサービス API無償提供」を利用してみました。」で、駅すぱあとWebサービス APIを紹介しましたが、Twitterでサポートの方からAPIの使い方を公開しても良いとの話を伺いましたので、早速Excelから本APIを利用する方法を紹介します。
@kinuasa 返信が遅くなり申し訳ありません。現状のドキュメントが認証キーメールでの説明を前提とした構成ですので、今後の課題とさせていただきます。 なお、APIの具体的な使い方やコード等を公開していただくことは全く問題ございませんので、色々とご活用いただければ幸いです。
— 駅すぱあとサポートセンター (@eki_support) September 30, 2013
※ 本API(法人向け)を利用するには認証(API)キーが必須になりますので、まずはこちらのページから申し込みをして、キーを受け取ってください。
本APIを利用すると、駅や路線、運行会社の情報などを取得できるのですが、今回はRooteで探索結果を表示するためのURLを取得する「経路探索」を使用してみます。
■ リクエスト先
http://api.ekispert.com/v1/xml/search/course/light?key=(認証キー)
■ リクエストパラメーター(2013/10/4 時点の情報)
名称 | データ型 | 説明 |
from | string | 出発駅(地)。駅コード(または駅名称)を指定可能です |
to | string | 到着駅(地)。駅コード(または駅名称)を指定可能です |
via | string | 経由駅(地)。駅コード(または駅名称)を指定可能です (省略可。省略時は指定なしとなります) |
date | int | 探索日付(YYYYMMDD) (省略可。省略時は現在日付となります) |
time | int | 探索時刻(HHMM) (省略可。省略時は現在時刻となります) |
searchType | string | 探索種別 (省略可。省略された場合は、発時刻探索となります) |
plane | string | 飛行機。利用する:true, 利用しない:false (省略可。省略時は利用するとなります) |
shinkansen | string | 新幹線(のぞみ含む)。利用する:true, 利用しない:false (省略可。省略時は利用するとなります) |
limitedExpress | string | 特急。利用する:true, 利用しない:false (省略可。省略時は利用するとなります) |
bus | string | バス(路線バス・高速バス)。利用する:true, 利用しない:false (省略可。省略時は利用するとなります) |
redirect | string | 結果をリダイレクトするかどうか。リダイレクトする:true, リダイレクトせずURL文字列を返す:false (省略可。省略時はリダイレクトせずURL文字列を返します) |
Webサービスドキュメント – API – API仕様 – 探索 より
■ レスポンス例(XML)
<?xml version="1.0" encoding="UTF-8"?> <ResultSet apiVersion="1.9.0.0" engineVersion="201309_03a"> <ResourceURI>http://roote.ekispert.net/result?dep_code=22828&arr_code=28626&via1_code=&yyyymmdd=20131001&hour=13&minute=15&type=dep&local=true&highway=true&dep=&arr=&via1=&via2=&via2_code=&connect=true&liner=true&ship=true&sleep=false&surcharge=3&sort=time</ResourceURI> </ResultSet>
※ APIの詳細な利用方法は、ドキュメント(認証キーが記載されたメールに、キーと一緒にリンクが記載されています)に書かれているので、そちらを参照してください。
リクエストパラメーターは上記の通りで、今回は「from」(出発駅)「to」(到着駅)「date」(日付)「time」(時刻)を使用します。
各値はセルで指定することにして、とりあえず今回は下記セルを使います。
・認証キー:セルC2
・出発駅:セルC4
・到着駅:セルD4
・日付:セルE4
・時刻:セルF4
ExcelからWeb APIを利用するときに使う関数は、当ブログでも散々紹介している「WEBSERVICE」関数で、出発駅と到着駅には日本語が含まれるので「ENCODEURL」関数も合わせて使います。
・セルC6:
WEBSERVICE関数で取得したXMLデータから任意の値を抽出するには「FILTERXML」関数を使います。
・セルC7:
Rooteの結果URLが抜き出せたので、「HYPERLINK」関数を使ってリンクを設定します。
・セルC8:
上記関数を一つにまとめると、下記のようになります。
・セルG4:
エラー処理は入れていないので実用上は問題ありますが、Excel 2013で追加されたWEB関数と駅すぱあとWebサービス APIを使うと、上記のように簡単に路線探索が行えるようになります。
探索結果を直接XMLやJSONで取得したり、定期情報や時刻表を取得したりするには有償版が必要になりますが、無償版だけでも十分便利です!
この記事へのコメントはありません。