LoginSignup
11
6

More than 5 years have passed since last update.

node.jsでamazon apiを叩く時にapac.jsで気をつけること。

Posted at

apac.js(amazonのAPIを簡単に使えるようになるよ!!)
https://github.com/dmcquay/node-apac

けど、そんなにも簡単に行かなかったお話。

apacのドキュメントを見てもらうと以下の様に書かれている。

var opHelper = new OperationHelper({
    awsId:     '[YOUR AWS ID HERE]',
    awsSecret: '[YOUR AWS SECRET HERE]',
    assocId:   '[YOUR ASSOCIATE TAG HERE]'
    // xml2jsOptions: an extra, optional, parameter for if you want to pass additional options for the xml2js module. (see https://github.com/Leonidas-from-XIV/node-xml2js#options)
});

ここでendPointの指定が可能なんです。
(endPointの指定によって、どこの国の情報を得たいか指定する。)

apacのソースを見ると、defaultのendPointの指定がある。
「お、日本のendPointだ!じゃあ指定しなくていいやー!!」
と思って処理をしてたら。

465610 is not a valid value for BrowseNodeId. Please change this value and retry your request.

って延々言われるという。
(465610は、日本の書籍ID)

endPointが上手く反映されないのかなーってUSのBrowseNodeIdを指定したら、ちゃんととれた。

「なんだ、渡す値は合ってるっぽいじゃん!!」

で、よくよく見たら、日本のendPointでなく、
ドメインに com とありました…。

そらそうですよ…。
日本製でも無いライブラリが日本の情報をデフォルトで取るようになんかなっているわけないんですよ!!

というわけで。

var opHelper = new OperationHelper({
    endPoint: 'ecs.amazonaws.jp', //日本のendPointを追記
    awsId:     '[YOUR AWS ID HERE]',
    awsSecret: '[YOUR AWS SECRET HERE]',
    assocId:   '[YOUR ASSOCIATE TAG HERE]'
    // xml2jsOptions: an extra, optional, parameter for if you want to pass additional options for the xml2js module. (see https://github.com/Leonidas-from-XIV/node-xml2js#options)
});

教訓

ソースは、しっかり読め。

11
6
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
6