2012年7月15日日曜日

YUGEのデータをjsonpで使えるようにしました。

13日の金曜日 -FRIDAY THE 13TH- スペシャル・コレクターズ・エディション [Blu-ray]
↑アマゾンアソシエイト




最近めっきりブログ更新がお留守になってしまいました。ぼちぼちゲームニュースの方も再開したいなーと思っています。

さて本題。つい最近Steamでサマーセールが開始されました。twitterでRT乞食した甲斐もあり、僕の作ったProsteamerパクリサイトYUGEも多少は世間の役に立っているみたいです。ただ、元を正せばYUGEのコンテンツは全て他人の成果の横取りなわけで、後ろめたい所もあります。

ということで、なにか世間様に還元できないもんかと考えた結果YUGEのデータベースをjsonpで利用できる様にしました。jsonpはおろかjavascriptさえチンプンカンプンの僕ですが、だましだまし出来た成果が以下の通り。

利用方法:
http://web.srytk.com/yuge/jsonp/jsonp.php に引数をごちゃごちゃつけるとjsonぽい感じにレスポンスが帰ってくる!それだけ。

使える引数:
id :steamのappidを指定する。カンマ区切りで複数指定可。
localize :localize=1とすると対象を日本語化可能っぽい奴だけにすることが出来る。指定しないと0が設定される。
sale :sale=1とすると対象をセール期間中のものだけにすることができる。指定しないと0が設定される。
maxresult :1から20までの間を指定する。何個のゲーム情報を返すかの設定。指定しないと20が設定される。
sort :game,price,metascore,discount,changetimeのどれかを指定する。gameを指定するとゲーム名でソートされた結果が、priceを指定すると値段でソートされた結果が、metascoreを指定するとメタスコアでソートされた結果が、discountを指定すると値引き率でソートされた結果が、changetimeを指定すると価格変更時間でソートされた結果が得られる。デフォルトはchangetime。
sorttype :ascかdescを指定する。それぞれ昇順、降順。
callback :jsonpってこれが重要なんだろ?


帰ってくるもの(ハッシュ)
game :ゲーム名
id :appid
metascore :メタスコア
sale :1だとセール中
previous_price :価格変更一個前の値段
price_change_time :yugeが価格変更に気づいた時のスクレイピングの時間 (Unixtime)
price :今の値段(多分)
price_history :価格の履歴(日単位) カンマ区切り
localize :空じゃなきゃ何かしらの日本語化が出来るかもしれない
以上は全て文字列として返される


出来るようになること:
自分のブログとかウェブサイトに(多分)最新の価格情報を表示したり、今セール中のゲームを表示したり、価格推移のグラフを作ったりとか。あとuser.js使えばsteamhelperみたいな事もできるんじゃね?僕は技術が無いから無理だけど。


デモ:
例に書いたurl(今セール中の日本語化できそうなやつ、更新順に15件)のゲーム名と値段を表示。




広告

0 件のコメント:

コメントを投稿