概要
Yahoo! Japan の Web API についてまとめています。Yahoo! Japan から提供されている Web API は基本的に無料で使用できます。一部、Yahoo! プレミアムなどの登録ユーザーのみ使用できるものもあります。
Yahoo! Japan の Web API は次のサイトで公開されています。
http://developer.yahoo.co.jp/
今回は、検索用の Web API を使用するサンプルです。
準備
検索キーワードを UTF-8 エンコーディングしたものを用意します。今回は「東京都」を検索キーワードにします。
- 次のサイトで、「東京都」を UTF-8 エンコーディングします。
https://www.tagindex.com/tool/url.html - 結果は、「%E6%9D%B1%E4%BA%AC%E9%83%BD」となります。
アプリケーションの登録とアプリケーション ID の取得
Web API を実行するには、アプリケーションとして登録し、アプリケーション ID を取得する必要があります。
- Yahoo! Japan デベロッパーサイトにアクセスして、ログインします。
http://developer.yahoo.co.jp/ - [アプリケーションの管理] タブをクリックします。
- [新しいアプリケーションを開発] ボタンをクリックします。
- 次のように指定します。
- 連絡先メールアドレス : 自動表示されます。
- アプリケーションの種類 : 認証を必要としない API を使ったアプリケーション
- アプリケーション名 : WebApp1
- サイト URL : [Web アプリケーションではないため、URL なし] にチェック
- [確認] ボタンをクリックします。
以上で、作成したアプリケーションにアプリケーション ID が割り当てられます。本来は、アルファベット、数字、記号のランダムな文字列が作成されます。今回の例では、aaaaabbbbbcccccdddddeeeeefffffggggghhhhhiiiiijjjjjkkkkkklllllmmmmm を使用します。
Web API の実行 (ブラウザ)
ブラウザのアドレスバーを使用して、Yahoo! Japan の Web API を実行します。使用する Web API の URL を作成するためには次の情報を使用します。
- 検索用 URL : http://search.yahooapis.jp/WebSearchService/V2/webSearch
- アプリケーション ID : aaaaabbbbbcccccdddddeeeeefffffggggghhhhhiiiiijjjjjkkkkkklllllmmmmm
- 検索キーワード (「東京都」) : %93%8c%8b%9e%93s
これらの情報を結合して次の文字列を作成します。
http://search.yahooapis.jp/WebSearchService/V2/webSearch?appid=aaaaabbbbbcccccdddddeeeeefffffggggghhhhhiiiiijjjjjkkkkkklllllmmmmm&query=%e6%b2%96%e7%b8%84&results=10
この文字列をブラウザのアドレスに入力して、実行します。
Web API の実行 (PHP)
PHP を使用して、Yahoo! Japan の Web API を実行します。まずは、こちらを参照して、XAMPP を用意します。
次に PHP を作成し、C:\xampp\htdocs\rakuten.php として保存します。ファイルのエンコードは BOM なし UTF-8 を指定します。
<?php $url = "http://search.yahooapis.jp/WebSearchService/V2/webSearch?appid=aaaaabbbbbcccccdddddeeeeefffffggggghhhhhiiiiijjjjjkkkkkklllllmmmmm&query=%e6%b2%96%e7%b8%84&results=10"; $file = file_get_contents($url); var_dump($file); echo($file); ?>
XAMPP (Apache) が起動している環境のブラウザで、http://localhost/yahoo.php を実行します。
解説
このように Web API の実行は、ブラウザのアドレスバーまたは、PHP を使用して行うことができます。結果は、XML 形式で表示されます。
尚、実験中、Yahoo! Japan からエラーが返されることが多い印象を受けました。接続数を制限しているものだと思われます。時間をおいてから試してみるとよいでしょう。
この API に関してのヘルプは次のサイトにあります。
http://developer.yahoo.co.jp/webapi/search/websearch/v2/websearch.html