10週間ウェブ開発講座

第十週

「Yahoo! Japan」のウェブAPIを使い、Yahoo!検索のミニマムクローンを作成します。

アプリケーションIDの登録

Yahoo! Japan のウェブAPIを利用するためには、アプリケーションIDの登録が必要です。 Yahoo! Japanデベロッパーネットワークのページにある、
「アプリケーションIDの登録」のボタンから、アプリケーションIDを取得してください。

XML処理

多くのウェブAPIは、APIの処理結果をXML形式で返します。
PHP5.0以降では、SimpleXMLという機能を使用することで、簡単にXMLを処理することが可能です。

<?php
$string = "<?xml version='1.0'?>
<document>
 <title>走れメロス</title>
 <author>太宰治</author>
 <body>メロスは激怒した</body>
</document>
";
$xml = simplexml_load_string($string);
//var_dump($xml);
echo $xml->title; // => 走れメロス
echo $xml->author; // => 太宰治
echo $xml->body; // => メロスは激怒した
?>

Yahoo! JapanのウェブAPI

次のURLにアクセスしてください。

http://search.yahooapis.jp/WebSearchService/V1/webSearch?appid=YahooDemo&query=yahoo&results=1

URL中の"YahooDemo?"の部分は、先ほど獲得したアプリケーションIDで置き換える必要があります。
得られるXMLの仕様は、Yahoo!デベロッパーネットワークに書かれています

simplexml_load_file関数

PHPにはsimplexml_load_fileという関数があります
simplexml_load_fileは「XMLファイルをパースし、オブジェクトに代入する」ための関数ですが、
第一引数に"http://www.example.com/"のようなURLを指定することで、
「指定されたURLのXMLソースをパースし、オブジェクトに代入する」ことが可能です。

次のサンプルコードを実行してみてください。

<?php
$xml_url = 'http://search.yahooapis.jp/WebSearchService/V1/webSearch?appid=YahooDemo&query=yahoo&results=3';
$xml_obj = simplexml_load_file($xml_url);

foreach ($xml_obj->Result as $result) {
    echo $result->Title . "\n";
    echo $result->Summary . "\n";
    echo $result->Url . "\n";
    echo $result->Cache->Url . "n";
    echo $result->Cache->Size . "n";
}
?>

ライブプログラミング

Yahoo!検索のクローンを作成します。

参考資料


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-05-19 (水) 20:53:07 (109d)