マッシュアップサイトとは、複数のWebサービスを組み合わせて新しいサービスを作ることです。その作成にはWebAPIの利用が欠かせません。ということで、今回は携帯サイトでWebAPIを利用する方法を紹介します。使用言語はPHPです。
LINK:実際に作ってみたサイト
■YouTubeのDataAPIを利用してみる
YouTubeの動画を検索したり、人気動画探すには、Data APIを使います。現時点では認証が不要ですので、スグに利用可能です。試しに、以下のURLを開いてみてください。
http://gdata.youtube.com/feeds/api/videos?vq=%E3%81%8A%E7%AC%91%E3%81%84
「%E3%81%8A%E7%AC%91%E3%81%84」は「お笑い」をUTF-8でエンコードした文字列です。「?vq=」の後に書くことで、指定したキーワードでの検索ができます。したがって、特定のキーワードで検索する場合は、まず以下のコードでURLを生成します。
<?php
$keyword = mb_convert_encoding("任意のキーワード", "UTF-8", "auto");
$url = "http://gdata.youtube.com/feeds/api/videos?vq="; //基本URL
$url.= rawurlencode($keyword);
echo "<a href=\"" .$url. "\">LINK</a><br>\n";
?>
コードは必ずShift-JISで保存してください。携帯電話ではShift-JISが必須です。
mb_convert_encodingでキーワードをUTF-8にしてから、rawurlencodeした内容をURLに加えます。これで基本のURLは完成です。
さらにパラメータを加えることが可能です。よく使うパラメータ以下のとおり。
▼start-index→検索順位何番目の結果から表示するか
▼max-results→結果をいくつ表示するか(デフォルトで25、MAXで50)
▼alt→レスポンスフィードのフォーマット。atom、rss、json、json-in-scriptが利用可能
▼format→特定のフォーマットを指定するときに使う 1 モバイル用。H.263動画(最大176×144)とAMR オーディオ。 6 モバイル用。MPEG-4SP動画(最大176×144)とAAC オーディオ。
▼lr→検索範囲の言語コード。日本語の場合は「ja」 言語コードについてはhttp://www.loc.gov/standards/iso639-2/php/code_list.php ※2文字のISO 639-1 Codeを使う
▼racy→制限コンテンツを除外するかしないか。 include…含める exclude…除外する
パラメータの詳細は、下記URLで参照できます。
http://code.google.com/intl/ja/apis/youtube/developers_guide_protocol.html#Searching_for_Videos
ということで、さきほどのコードにパラメータを加えました。
<?php
$keyword = mb_convert_encoding("任意のキーワード", "UTF-8", "auto");
$query.= "&start-index=1";
$query.= "&alt=atom";
$query.= "&format=6";
$query.= "&lr=ja";
$query.= "&racy=include";
$url = "http://gdata.youtube.com/feeds/api/videos?vq="; //基本URL
$url.= rawurlencode($keyword);
$url.= $query;
echo "<a href=\"" .$url. "\">LINK</a><br>\n";
?>
このように、WebAPIを利用するにはまずリクエストURLを作ります。コードは同じように流用できますが、APIによってパラメータの利用方法が異なるので、それぞれの資料を参照してください。
マッシュアップサイトを作る場合、このURLを元に情報を取得・加工するわけですが、それは次回に説明します。