AIMSを使ってレポートをダウンロードする その2

前回、AIMSを使ってレポートをダウンロードするというエントリを公開したのだが、タイトルに偽りありで、あのスクリプトはレポートのダウンロードに必要なリクエストIDを取得するだけで、レポートのダウンロードはできない。

で、今回は実際にレポートをダウンロードするスクリプトを公開。

やりかたは簡単で、例のごとくヘッダーに適切な値を設定し、以下のURLにリクエストを投げるだけ。

https://vendornet.amazon.co.jp/exec/panama/seller-admin/download/report

ヘッダーには例のごとく、認証情報とクッキーを指定。
それと、今回必要なのは前回紹介したスクリプトで取得した、ReportID。
詳しくはソース見てけろ。

これだけで、レポートのダウンロードができる。
結果はShift_JISで返ってくる。注意が必要なのは、以前にも書いたが「ー」が「^Z」に化けること。
「ー」は番地等で使われることが多いのでAmazon先生にはなんとかして欲しいところだが、なんとかなってないようなので自前で変換する必要がある。

あと、私がAIMSで遊び出した頃、ヘッダーのフィールドに「ReportID」としないといかんところを「ReportId」としていて、思うように動作せず嵌まった。気がつくまでにかなり時間が掛かった。
ちなみに、ReportIDを指定しなかった場合は、作成した最新の注文レポートが返ってくるようだ。

以下、ソース。

#!/usr/bin/perl

use strict;
use warnings;

use Getopt::Long;
use LWP::UserAgent;
use MIME::Base64;

my $id = 0;
GetOptions('--id=i', \$id);

my $url = "https://vendornet.amazon.co.jp/exec/panama/seller-admin/download/report";
my $auth = MIME::Base64::encode('test@example.com:password');

# Cookie
my $session_id      = "session-id=nnn-nnnnnn-nnnnnnn;";
my $session_id_time = "session-id-time=nnnnnnnnnn;";
my $ubid_main       = "ubid-main=nnn-nnnnnnn-nnnnnnn";

my $ua = LWP::UserAgent->new;
my $header = HTTP::Headers->new(
                 Authorization=>"Basic $auth",
		 ReportID=>$id,
		 Cookie=>"$session_id $session_id_time $ubid_main",
	     );

my $req = HTTP::Request->new(POST=>$url, $header);

my $res = $ua->request($req);

print $res->code, "\n";
print $res->content, "\n";

使いかたは、

$ ./getreport --id=nnnnnnnn

nnnnnnnnにはダウンロードするレポートIDを指定する。
上のソースそのままでは動かないので、認証情報(メールアドレス、パスワード)とクッキーの値は自分のものを記述すること。

初めてのPerl
初めてのPerl

前:メモリ購入後
次:新APIリリース 2006-11-14
メイン

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

Menu

Amazonマーケットプレイス

About

2006年11月16日 19:43に投稿されたエントリのページです。

ひとつ前の投稿は「メモリ購入後」です。

次の投稿は「新APIリリース 2006-11-14」です。

他にも多くのエントリがあります。メインページアーカイブページも見てください。

Amazon.co.jp

SONY 保護フィルム PRF-NWA800

ソニー
価格: ¥ 1,012
SONY 録音用ケーブル WMC-NWR1 C

ソニー
価格: ¥ 1,280
SONY クリップ CLP-NWS700 C

ソニー
価格: ¥ 1,480
Powered by
Movable Type