Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Amazon Simple Product API error when looking up product

from amazon.api import AmazonAPI

AMAZON_ACCESS_KEY = "A******************A"
AMAZON_SECRET_KEY = "7***********************E"
AMAZON_ASSOC_TAG = "j*****-20"

amazon = AmazonAPI(AMAZON_ACCESS_KEY, AMAZON_SECRET_KEY, AMAZON_ASSOC_TAG, region='US')
print(amazon)
#product = amazon.lookup(ItemId='B002RL8FBQ')

When I run the code above it works fine and I get this output from the print function: <amazon.api.AmazonAPI object at 0x7fb6e59f7b38>

So everything is working fine with my access key, secret key, and associate tag.

However, if I un-comment the last line #product = amazon.lookup(ItemId='B00EOE0WKQ') then I get this error traceback:

Traceback (most recent call last):
  File "test.py", line 8, in <module>
    product = amazon.lookup(ItemId='B00EOE0WKQ')
  File "/home/darren/Python_projects/amazon_wp/myvenv/lib/python3.4/site-packages/amazon/api.py", line 173, in lookup
    response = self.api.ItemLookup(ResponseGroup=ResponseGroup, **kwargs)
  File "/home/darren/Python_projects/amazon_wp/myvenv/lib/python3.4/site-packages/bottlenose/api.py", line 251, in __call__
    {'api_url': api_url, 'cache_url': cache_url})
  File "/home/darren/Python_projects/amazon_wp/myvenv/lib/python3.4/site-packages/bottlenose/api.py", line 212, in _call_api
    return urllib2.urlopen(api_request, timeout=self.Timeout)
  File "/usr/lib/python3.4/urllib/request.py", line 161, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib/python3.4/urllib/request.py", line 469, in open
    response = meth(req, response)
  File "/usr/lib/python3.4/urllib/request.py", line 579, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/python3.4/urllib/request.py", line 507, in error
    return self._call_chain(*args)
  File "/usr/lib/python3.4/urllib/request.py", line 441, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.4/urllib/request.py", line 587, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 400: Bad Request

I have followed the instruction from the official github for this https://github.com/yoavaviram/python-amazon-simple-product-api and the code I am using you will see I have used from the "Usage" subheading on the github page, thus I am not sure what's going wrong.

For added info, I am using a virtual environment and to show that I have the correct packages installed here is my out put of pip freeze:

(myvenv) darren@my_comp:~/Python_projects/amazon_wp$ pip3 freeze
bottlenose==0.6.3
lxml==3.6.0
python-amazon-simple-product-api==2.1.0
python-dateutil==2.5.3
six==1.10.0

Also, I have tried several different asin numbers of valid products and I get the same error message.

I am using python 3.4 on ubuntu 14.04

like image 221
Darren Haynes Avatar asked Jul 02 '16 17:07

Darren Haynes


People also ask

Does Amazon have a search API?

The Amazon Product Advertising API returns up to ten items per search request. A SearchItems request requires a search category, which, if not specified, defaults to "All" and value for at least one of Keywords , Actor , Artist , Author , Brand or Title for searching items on Amazon.


1 Answers

I think, problem is with region. Please select valid value from here. Explanation can be that AWS can validate your credentials, but when it comes to "real" call it fails, since 'US' is not valid region...

like image 166
Michał Zaborowski Avatar answered Oct 13 '22 00:10

Michał Zaborowski