【Twitterやってます】 koress project | しがく(cigarcook) | おかじ(okaji)

2009年10月 4日 04:54

iPhoneアプリの値下げ情報をつぶやくBotを作りました。あと、App storeのxmlの取得の仕方。


どうも。
半年前ほどにリリースした、iPhoneアプリの値下げ情報のまとめサイト「WeLoveApps!」のTwitter bot @weloveapps を作りました。

加えてApp storeのxmlの取得方法まとめも書きます。

「WeLoveApps!」のTwitter botを作りました。

iPhoneアプリはたまに値下げします。再度値上がりすることもあります。
というわけで半年ほど前に、値下げしたiPhoneアプリのまとめサイトとして「WeLoveApps!」をリリースしました。
速ければ十数分、遅くとも6時間程度で値下げがわかります。

で、どうせなら値下げアプリが出てきたらTwitterで知らせてくれたほうが便利ですよね、
ということで「WeLoveApps!」のTwitterアカウントを取りました。

@weloveapps です。

これをフォローしていただければ、ページを毎度毎度確認することなく、
値下げアプリを発見することができます。

iPhone3Gの人も、iPhone3GSの人も、フォローしていただければ幸いです。

@weloveapps (値下げしたiPhoneアプリをつぶやくBot)

App storeのxmlの取得方法

WeLoveApps!ではApp storeのxmlを活用しています。
その取得の仕方を書きます。

アプリの情報が書かれたxmlには二種類あります。
1) 特定ジャンルに属するアプリのユニークID、名前、価格などが書かれたxml
2) 特定アプリの説明文、評価、動作環境など詳細な情報が書かれたxml

下準備
上記xmlをサーバから取得するにはhttp headerとして下記の内容が必要です。

User-Agent: iTunes/9.0 (Windows; Microsoft Windows XP Home Edition Service Pack 3 (Build 2600)) AppleWebKit/531.17
Accept-Encoding: gzip
X-Apple-Store-Front: 143462-9
Host: ax.itunes.apple.com

まあ、「そりゃそうですよね」という内容ですな。
X-Apple-Store-Frontというのは、App storeの国番号にあたるものだそうで。
これを変える事で色々な国のApp storeの情報を取得できそう。

以上のhttp headerをつけてリクエストすれば問題なく取得できると思います。
で、何をリクエストすればいいの?というのは次。

アプリ一覧xml

http://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/browse?path=%2F36%2F(ジャンルごとにユニークなID)%2F1
で取得できます。

例としてはこんな感じ。
http://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/browse?path=%2F36%2F6016%2F1

ジャンルごとにユニークなIDはこんな感じ。
6015:ファイナンス
6000:ビジネス
6020:メディカル
6018:電子書籍
6017:教育
6016:エンターテインメント
6013:健康&フィットネス
6007:仕事効率化
6008:写真
6004:スポーツ
6005:ソーシャルネットワーキング
6001:天気
6010:ナビゲーション
6009:ニュース
6011:ミュージック
6002:ユーティリティ
6012:ライフスタイル
6003:旅行
6006:レファレンス
6014:ゲーム

ゲームはちと特殊で二段構造です。

xmlのURLはこんな風に書く。
http://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/browse?path=%2F36%2F6014%2F7001

記述法はこんな感じ。
http://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/browse?path=%2F36%2F6014%2F(ゲーム小分類ごとにユニークなID)

ユニークIDはこんな感じ。
アクション:7001
アドベンチャー:7002
アーケード:7003
ボード:7004
カード:7005
カジノ:7006
さいころ:7007
教育:7008
ファミリー:7009
キッズ:7010
ミュージック:7011
パズル:7012
レーシング:7013
ロールプレイング:7014
シミュレーション:7015
スポーツ:7016
ストラテジー:7017
トリビア:7018
単語:7019

これでアプリの一覧は取ってこれます。

アプリ詳細xml

アプリの詳細はもっと簡単。
アプリ一覧xmlで取得したアプリのユニークIDを引数にして下記のノリでリクエストすればOK。
http://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=(アプリのユニークID)&mt=8

例を書くならこんな感じ。
http://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=295660203&mt=8
これで詳細な情報を取得できます。

おまけ

海外にも値下げお知らせサイトもありますし、iPhoneアプリとして値下げアプリお知らせアプリもあります。
基本的に上の二つのxmlを使っているんではないかと。
もっとクレバーな方法があれば教えてください。(m_ _m)

トラックバック

コメントする

※返信が必要な場合にはメールにてお問い合わせください.