●AWSとYWSのマッシュアップ例
AmazonWebService(以下、AWS)と
YahooWebService(以下、YWS)
のマッシュアップ例として、
以前から、AWSを利用した検索ページ
Amazonで指定キーワードに該当する商品をユーザーレビュー付きで一覧表示
というページを作っていたのですが、
このページにYWSを組み込んでマッシュアップしてみました。
YahooWebService(以下、YWS)
のマッシュアップ例として、
以前から、AWSを利用した検索ページ
Amazonで指定キーワードに該当する商品をユーザーレビュー付きで一覧表示
というページを作っていたのですが、
このページにYWSを組み込んでマッシュアップしてみました。
--
仕様としては
・YWSのサーチ対象としては、YahooMusicのサウンドステーション
・有無判定は、入力キーワードがYWSで取得した番組に存在すれば、その番組名をリンク表示
・表示するのは1ページ目のみ
・YWSは、リクエスト回数制限があるので、サーバーでキャッシュ
こんなところでしょうか。
すでに組み込み済みなので、
Amazonで指定キーワードに該当する商品をユーザーレビュー付きで一覧表示
で、適当なキーワード、例えば、
「ジャズ」「川嶋あい」「卒業」
などを検索キーワードにすると、番組名が表示されます。
番組名をクリックすれば、普通に聞けるので、聞きながらでも続きを読んでください。
まず、YWSを使うには、専用のアプリケーションIDが必要です。
Yahoo!デベロッパーネットワーク
のページ左側に「アプリケーションIDの登録」リンクがあるので、これをクリックすると、簡単に取得できます。
YWSは、RESTで使用できるので、一般的なリクエスト方式と同じです。
特に面倒なことはないので、解説は不要でしょう。
下のようなコードを書いてみました。
あまりにも、ストレートすぎるコードなので、説明のしようがないのですが、
前半はキャッシュ処理、判定は日付のみ
中盤でキャッシュファイルをsimplexml_load_fileでパースし、キーワードに該当する番組があるかを検索、
最後に番組があれば、そのリンクと、クレジット表示をつけて終了
です。
何気ないキーワードで検索してみると、思いがけないレビューに出会ったりして、読みふけってしまうこともあるのですが、サウンドステーションに関連番組があれば、その音楽を聴きながら読めるのが、なかなかいい感じです。
以上、簡単なマッシュアップ例でした。
--
仕様としては
・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
コメント入力は停止しています
海外からと思われるコメントスパムが横行しているため、全記事のコメント入力を停止しています。メッセージのある方は、ホームページの一番下に連絡欄がありますので、そちらからお願いします。