2014/04/07
Search APIを使ってiOSアプリ一覧を表示する
iTunes, JavaScript, jQueryiTunesのAffiliate Resourcesとして提供されている「Search API」を使って、iOSアプリの一覧を取得してみます。
一覧を取得する場合は、Search APIのSearch Requestを使用します。
Perl/PHP等のサーバ処理か、またはAjaxを使ったJavaScriptのどちらか迷いますが、他のAPIとの連動なども考慮に入れて、JavaScriptにします。
APIのgetパラメータに検索キーワード(サンプルコード中のterm)を指定して、該当するアプリの一覧を取得します。
サンプルコード
limit = "20";
term = "search_word"; // 検索ワードを指定
if (offset==undefined || offset=="") offset = 0; // offsetをパラメータで受け取る前提
search_url = "http://itunes.apple.com/search?";
search_url = search_url + "term=" + term;
search_url = search_url + "&country=JP"; // 日本のAppStoreマーケットを指定
search_url = search_url + "&lang=ja"; // Localizeは日本語指定
search_url = search_url + "&limit=" + limit; // 1回あたりの取得件数
search_url = search_url + "&entity=software"; // 検索対象はアプリ
search_url = search_url + "&offset=" + offset;
$.ajax({
type: 'GET',
url: search_url,
dataType : 'jsonp', // クロスドメイン接続を考慮してJSONPにする
success: function(json, status){
var len = json.length;
count = json['resultCount'];
if (count==0) {
// 検索結果0件
} else {
// Prev
if (offset >= limit) {
// 前ページのリンクを表示
}
// Next
if (count == limit) {
// 次ページのリンクを表示
}
results = json['results'];
jQuery.each(results, function(cnt, result) {
alert(result['trackId']); // アプリ固有のID
alert(result['price']); // 販売価格
alert(result['genreIds']); // カテゴリID(複数)
alert(result['genres']); // カテゴリ名(複数)
alert(result['artworkUrl100']); // アイコンImageUrl
alert(result['trackCensoredName']); // アプリのタイトル
});
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
// エラー処理
},
complete : function(data) {
// Ajax通信完了
}
});
term = "search_word"; // 検索ワードを指定
if (offset==undefined || offset=="") offset = 0; // offsetをパラメータで受け取る前提
search_url = "http://itunes.apple.com/search?";
search_url = search_url + "term=" + term;
search_url = search_url + "&country=JP"; // 日本のAppStoreマーケットを指定
search_url = search_url + "&lang=ja"; // Localizeは日本語指定
search_url = search_url + "&limit=" + limit; // 1回あたりの取得件数
search_url = search_url + "&entity=software"; // 検索対象はアプリ
search_url = search_url + "&offset=" + offset;
$.ajax({
type: 'GET',
url: search_url,
dataType : 'jsonp', // クロスドメイン接続を考慮してJSONPにする
success: function(json, status){
var len = json.length;
count = json['resultCount'];
if (count==0) {
// 検索結果0件
} else {
// Prev
if (offset >= limit) {
// 前ページのリンクを表示
}
// Next
if (count == limit) {
// 次ページのリンクを表示
}
results = json['results'];
jQuery.each(results, function(cnt, result) {
alert(result['trackId']); // アプリ固有のID
alert(result['price']); // 販売価格
alert(result['genreIds']); // カテゴリID(複数)
alert(result['genres']); // カテゴリ名(複数)
alert(result['artworkUrl100']); // アイコンImageUrl
alert(result['trackCensoredName']); // アプリのタイトル
});
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
// エラー処理
},
complete : function(data) {
// Ajax通信完了
}
});
サンプルでは、1回当りの取得件数(limit)を20件としています。
検索結果は、AppStoreでキーワード検索したものと同じ結果・並び順になります。
カテゴリ(genre)は1〜複数あります。genreIds[0]にプライマリ・カテゴリのIDが入っているようです。
artworkUrlには、アプリアイコンImageのURLが入っています。ImageのURLは他にも幾つかありますが(サイズが異なる)、開発者によっては古いアイコンのままだったりしますので注意が必要です。
次回は、アプリの詳細情報を取得するSearch APIのLookup Requestを使ってみたいと思います。
(上記APIを使用した画面 : iOSアプリ ランキング検索(β版))
関連記事:「Search APIを使ってiOSアプリの詳細情報を表示する」