バーコードリーダーとAmazon Web Serviceで遊ぼう
概要
バーコードリーダーを買ってみたので、いろいろと使ってみようと言う企画。
Amazon Web ServicesというAPIを使えば、バーコードリーダーで読み取ったISBNから、書籍の情報を得ることができます。
今後自分の本棚とかをデータベース化して、外からでもアクセスできるようにしてみたい。
AWSの登録
AWS
AWSとはAmazon Web Serviceの略。
開発者登録を行えば、Amazonの商品のデータベースを使うことができる。いわゆるクラウド。
タダで使わせてくれる気前のいいAmazonですが、AWSを使ってアフィリエイトする人が増えれば売り上げになるので、Amazonにとっても有益なんですね。
だから気兼ねすることなく利用しよう。利用してるつもりが利用されているのかもしれないけど。
登録する
Amazon Web Services (AWS) - Cloud Computing Servicesの上にある Sign in to the AWS Management Console から登録できる。
特に注意することはなし。
AWSを使う準備
登録を終えてログインしたら、Security Credentialsというページにアクセスして鍵を手に入れる。
この鍵はプログラム中でAWSを使うために必要。
認証の種類が3種類あるようだけど、Access Keys以外はどうやってNet::Amazonから使えばいいのかわからなかった。
- Access Keys
- X.509 Certificate
- Amazon CloudFront Key Pairs
Net::Amazonで遊ぼう
ここからが本番。以下のPerlスクリプトで、書籍の情報*1が出力されます。
#!/usr/bin/perl -w use strict; use Net::Amazon; use utf8; binmode STDOUT, ":utf8"; my $ua = Net::Amazon->new( token => 'kyaaaaaaaaaaaaaaaaaaaaaa', # Access Key ID secret_key => 'uwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', # Secret Access Key locale => 'jp', max_pages => 1, ); my $response = $ua->search( isbn => $ARGV[0]); if(not $response->is_success()) { print "Error: ", $response->message(), "\n"; exit; } for ($response->properties()) { # 著者, タイトル, 出版年, 出版社 printf( "%s 「%s」(%s) %s\n", $_->authors(), $_->ProductName(), $_->year(), $_->Manufacturer()); # print $_->ImageUrlMedium(), "\n"; # 画像URL }
鍵
token, secret_keyにそれぞれ、Accsess_key、Seecret accsess keyを入力。
できなかったら、何かの手違いかもしれません。何度か作り直すとうまく行くかも。
参考
*1:書誌情報とかいったけ?