SSブログ
ランニング日誌サイトを運営しています。
ジョグナビ
節約テクニック
No1:家族(妻、子供など)名義で優待銘柄を買おう
No2:還元率の高いクレジットカードは
No3:エンジンオイルはエコオイルにしよう
No4:エコタイヤは性能と値段と相談
パンつくり
No1:小麦粉の配合
No2:日清カメリヤはどうなの

Google App Engine for Javaでメール応答型せどりツールを作る。その4 [仕事]

AmazonのAPIの使い方を書いたページはいかにあった。
サンプルソースをダウンロードしてくる。
そして、適当なパッケージ名に変えてやり。

http://d.hatena.ne.jp/xfan/20101128/1290920257

Base64クラスがないという警告がでるので、import文を書き換える。
「import com.google.appengine.repackaged.com.google.common.util.Base64;」

ここも書き換える。
Base64 encoder = new Base64();
signature = new String(encoder.encode(rawHmac));

signature = new String(Base64.encode(rawHmac));
signature = signature.trim();

そして、ここに自身で取得したコードを入れる
AWS_ACCESS_KEY_ID
AWS_SECRET_KEY

こいつを日本用のURLに変える。
ENDPOINT

http://blog.kcg.ne.jp/blog/leeway/10095

そして、パラメータの部分をこのように書き換えてISBNに対応させてみたが・・・

params.put("Service", "AWSECommerceService");
params.put("Version", "2009-03-31");
params.put("Operation", "ItemSearch");
params.put("IdType", "ISBN");
params.put("ItemId", itemId);
params.put("ResponseGroup", "OfferSummary");

以下のようなエラーが帰ってきた。
とりあえずAPI自体は呼べているので、あとはパラメータの調整ですなぁ。

- - AWS.RestrictedParameterValueCombination リクエストには、使用できないパラメータの組み合わせが含まれています。SearchIndexが${restricted-value}である場合、 MerchantIdは使えません。 - AWS.MinimumParameterRequirement 次のパラメータのうち、最低1個がリクエストに含まれている必要があります:'Keywords','Title','Power','BrowseNode','Artist','Author','Actor','Director','AudienceRating','Manufacturer','MusicLabel','Composer','Publisher','Brand','Conductor','Orchestra','TextStream','Cuisine','City','Neighborhood'

で、このようにやりましたら中古価格がとることができました。

params.put("Service", "AWSECommerceService");
params.put("Version", "2009-03-31");
params.put("Operation", "ItemLookup");
params.put("ItemId", itemId);
params.put("MinimumPrice", "1");
params.put("ResponseGroup", "OfferSummary");

返却されるXMLから価格と件数を取得するところ。
XPath表現でとる方法がスマートかと思い。jaxenなるライブラリをゲット。

http://jaxen.codehaus.org/

中古価格と件数のXPath表現は
/itemlookupresponse/items/item/offersummary/lowestusedprice/formattedprice
/itemlookupresponse/items/item/offersummary/totalused
であるからして、こんな感じにコーディングしたのであります。

XPath xpath = new Dom4jXPath("/itemlookupresponse/items/item/offersummary/lowestusedprice/formattedprice");
List results = xpath.selectNodes(doc);
if (results.size() > 0){
Node node = (Node)(results.get(0));
result.append("price=");
result.append(node.getNodeValue());
result.append(",");
}

他のXPathで値をとりたいのという人
AmazonAPIに投げるURLをFireBugというアドインを入れたFireFoxブラウザで開いて
みてください。サイトが開いたらFirebugを起動してあげて、とりたいXMLの要素
のところにカーソルを合わせて右クリックしますと。ご丁寧にもXPathコピーというメニューが
あるんです。そうするとXPATHがすぐにわかるわけ。

うーん。URLからうまくXMLにできていないようです。。



作ればわかる!Google App Engine for Javaプログラミング

作ればわかる!Google App Engine for Javaプログラミング

  • 作者: 中垣 健志
  • 出版社/メーカー: 翔泳社
  • 発売日: 2011/04/23
  • メディア: 大型本



nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

Google App Engine fo..左股関節痛。 ブログトップ
ブログを作る(無料) powered by SSブログ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。