2003年08月27日 (水)
Amazon Web Service
朝、電車のなかで思い立って、Amazon Web Serviceのデベロッパートークンを申し込んでみました。
んで、朝から仕事もせず SOAP::Lite でごにょごにょ。とりあえず、 SOAP::Lite の使い方を。
ようは、単に Amazon でものを買うとき、自分のアソシエイトID経由で買えばちょっとお得かな?とか思ったので、 ウィッシュリスト リストを取得して自分のアソシエイトIDを付けてみようと思ったわけで。
LWPでHTMLをパースしてももちろんできるだけどけど、Web Serviceを使った方がカッコイイから(BERO)
っと。今日は遊んでいるほどの余裕は無かったのでした。
適当に作ってみました。よくわからなかったのですが、ここらへんを参考にしながら後はカンで、実装。
ちなみにこれ、このまま使うと デベロッパートークン ばれちゃうのでURLとかは操作しないと行けないですが、とりあえず動いたので仕事に戻ります。
#!/usr/local/bin/perl
use strict;
use Template;
use SOAP::Lite;
my $data = SOAP::Data->value(
SOAP::Data->name(wishlist_id => 'WISHLIST_ID'),
SOAP::Data->name(tag => 'ASSOCIATE_ID'),
SOAP::Data->name(devtag => 'DEVELOPER_TOKEN'),
SOAP::Data->name(page => 1),
SOAP::Data->name(type => 'lite'),
SOAP::Data->name(locale => 'jp'),
SOAP::Data->name(format => 'xml'),
SOAP::Data->name(version => '1.0'),
);
my $wsdl = 'http://soap.amazon.com/schemas3/AmazonWebServices.wsdl';
my $s = SOAP::Lite->service($wsdl);
my $result = $s->WishlistSearchRequest (
SOAP::Data->name('WishlistSearchRequest')
->type('WishlistRequest')
->value(\$data)
);
my $tt = Template->new();
my $output;
$tt->process(\*DATA, {result => $result}, \$output);
print "Content-Type: text/html;\n\n";
print $output;
__DATA__
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>MyWishList</title>
</head>
<body>
<h1>MyWishList</h1>
<ul>
[% FOREACH detail = result.Details %]
<li>
<a href="[% detail.Url %]">
<img src="[% detail.ImageUrlSmall %]"/>
[% detail.ProductName %]
</a>
</li>
[% END %]
</ul>
</body>
</html>
posted by takefumi
|
この日記へリンク
|
コメント(2)
|
トラックバック(0)

