<< AWSによるAmazonポイントの取得 | main | RSSフィードのキーワード検索 >>

2007.02.23 Friday

AWSとYWSのマッシュアップ例

AmazonWebService(以下、AWS)と
YahooWebService(以下、YWS)
のマッシュアップ例として、
以前から、AWSを利用した検索ページ
Amazonで指定キーワードに該当する商品をユーザーレビュー付きで一覧表示
というページを作っていたのですが、
このページにYWSを組み込んでマッシュアップしてみました。
--

仕様としては
・YWSのサーチ対象としては、YahooMusicのサウンドステーション
・有無判定は、入力キーワードがYWSで取得した番組に存在すれば、その番組名をリンク表示
・表示するのは1ページ目のみ
・YWSは、リクエスト回数制限があるので、サーバーでキャッシュ

こんなところでしょうか。
すでに組み込み済みなので、
Amazonで指定キーワードに該当する商品をユーザーレビュー付きで一覧表示
で、適当なキーワード、例えば、
「ジャズ」「川嶋あい」「卒業」
などを検索キーワードにすると、番組名が表示されます。
番組名をクリックすれば、普通に聞けるので、聞きながらでも続きを読んでください。

まず、YWSを使うには、専用のアプリケーションIDが必要です。
Yahoo!デベロッパーネットワーク
のページ左側に「アプリケーションIDの登録」リンクがあるので、これをクリックすると、簡単に取得できます。
YWSは、RESTで使用できるので、一般的なリクエスト方式と同じです。
特に面倒なことはないので、解説は不要でしょう。

下のようなコードを書いてみました。
function 関数名($Keywords)
{

$category = 2;

$log = "hoge" . "/yws_cache_soundstation.$category.";
$date = date('Y.m.d',time());
$log .= $date . ".log";
if( False == file_exists( $log ) )
{
$req = "http://api.station.music.yahoo.co.jp/StationWebService/V1/ProgramList";
$req .= "?appid=" . $アプリケーションID . "category=$category";
copy( $req, $log );
}

$xml = simplexml_load_file( $log );

$array = array();
$count = count($xml->Program->Item);
for($i=0;$i<$count;$i++)
{
if( false === ( $pos = strpos( $xml->Program->Item[$i]->ProgramName, $Keywords ) ) )
{
;
}
else
{
$pgname = $xml->Program->Item[$i]->ProgramName;
$pgurl = $xml->Program->Item[$i]->ProgramURL;
$hlink = "<a target=\"_blank\" href=\"$pgurl\">$pgname</a><br>";
array_push($array,$hlink);
}
}

$count = count($array);
for($i=0;$i<$count;$i++)
{
print_r($array[$i]);
}
if( 0 < $count )
{
echo <<< HTML_HR
Yahooミュージックのサウンドステーション番組リストに該当プログラムが見つかりました<br>
リンクをクリックすると、番組が聴けます<br>
(ただし、IE専用)<br>
<!-- Begin Yahoo! JAPAN Web Services Attribution Snippet -->
<span style="margin:15px 15px 15px 15px"><a href="http://developer.yahoo.co.jp/about">Webサービス by Yahoo! JAPAN</a></span>
<!-- End Yahoo! JAPAN Web Services Attribution Snippet -->
<hr>
HTML_HR;
}

}


あまりにも、ストレートすぎるコードなので、説明のしようがないのですが、
前半はキャッシュ処理、判定は日付のみ
中盤でキャッシュファイルをsimplexml_load_fileでパースし、キーワードに該当する番組があるかを検索、
最後に番組があれば、そのリンクと、クレジット表示をつけて終了
です。

何気ないキーワードで検索してみると、思いがけないレビューに出会ったりして、読みふけってしまうこともあるのですが、サウンドステーションに関連番組があれば、その音楽を聴きながら読めるのが、なかなかいい感じです。

以上、簡単なマッシュアップ例でした。

--

テクノラティお気に入りに追加する

Comments

コメント入力は停止しています

海外からと思われるコメントスパムが横行しているため、全記事のコメント入力を停止しています。メッセージのある方は、ホームページの一番下に連絡欄がありますので、そちらからお願いします。

Trackback URL

トラックバックする場合は、
トラックバック元の記事にこのエントリへのリンクを記載してください
このエントリのタイトル「AWSとYWSのマッシュアップ例」
このエントリのリンク「http://kommy.s254.xrea.com/blog/log/eid15.html」