Yahoo!ショッピングWebサービスで利用できるAPIが増えました
Yahoo!ショッピングWebサービスでは商品コード検索、
キーワードランキング、コンテンツマッチアイテム、
コンテンツマッチランキングのAPIが増えました。
(http://developer.yahoo.co.jp/ - 2008年8月28日)
#!/usr/bin/perl -T
use strict;
use warnings;
use CGI;
use LWP::Simple;
use XML::Simple;
use HTML::Template;
use URI::Escape;
use utf8;
binmode STDOUT, ":utf8";
my $appid = "YahooDemo";
my $q = new CGI;
my $url = $q->param('u') || "";
$url =~ s/[\"<>]//g;
my $sr_ref = yapi({url => $url});
my $template = join("", <DATA>);
my $t = HTML::Template->new(scalarref => \$template,
global_vars => 1,
die_on_bad_params => 0);
$t->param(url => $url);
$t->param(results => $sr_ref);
print $q->header(-charset => 'UTF-8'), $t->output();
sub yapi {
my ($args_ref) = @_;
my $u = $args_ref->{url};
return [] unless $u;
my $eu = URI::Escape::uri_escape($u);
my $url = "http://shopping.yahooapis.jp/ShoppingWebService/V1/contentMatchItem?"
."appid=$appid&url=$eu";
my $response = get($url);
my $xmlsimple = XML::Simple->new(ForceArray => [ 'Hit' ]);
my $xml = $xmlsimple->XMLin($response);
return [] unless $xml->{Result}->{Hit};
foreach my $r (@{$xml->{Result}->{Hit}}) { # ad hoc, bk
$r->{ImageUrl} = $r->{Image}->{Small};
}
return $xml->{Result}->{Hit};
}
__DATA__
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><TMPL_VAR name=url></title>
</head>
<body>
<h1><a href="<TMPL_VAR name=url>"><TMPL_VAR name=url></a></h1>
<form>
<input type="input" name="u" size="60" value="<TMPL_VAR name=url>">
<input type="submit">
</form>
<TMPL_LOOP name=results>
<p><a href="<TMPL_VAR name=Url>"><TMPL_VAR name=Name></a><br>
<img src="<TMPL_VAR name=ImageUrl>"></p>
</TMPL_LOOP>
<hr>
<a href="http://developer.yahoo.co.jp/about">Webサービス by Yahoo! JAPAN</a>
</body>
</html>
$appid は自分で取得したものを使ってくださいね。
