2017-11-05

AWS Product API ItemLookup Sample code in Python3

According to http://docs.aws.amazon.com/AWSECommerceService/latest/DG/rest-signature.html


import requests
import hmac
import hashlib
import base64

access_key = 'xxx' # https://console.aws.amazon.com/iam/home?rw_useCurrentProtocol=1#/security_credential
secret_key = 'xxx'

ts = datetime.datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%SZ')

params = {'Service': 'AWSECommerceService',
    'AWSAccessKeyId': access_key,
    'AssociateTag': 'asterisk37n-22',
    'Operation': 'ItemLookup',
    'ItemId': '0679722769',
    'ResponseGroup': 'Images,ItemAttributes,Offers,Reviews',
    'Version': '2013-08-01'}
parsed_url_params = urllib.parse.urlencode(sorted(params.items()))

params.update({'Timestamp': ts})

parsed_canonical_params = urllib.parse.urlencode(sorted(params.items()))
endpoint = 'http://webservices.amazon.co.jp/onca/xml?'

canonical_string = '''GET
webservices.amazon.co.jp
/onca/xml
''' + parsed_canonical_params

dig = hmac.new(secret_key.encode('utf-8'), msg=canonical_string.encode('utf-8'), digestmod=hashlib.sha256).digest()
code = base64.b64encode(dig).decode()      # py3k-mode
encoded_signature = urllib.parse.quote(code)

url = endpoint + parsed_url_params + '&Timestamp=' + urllib.parse.quote(ts) + '&Signature=' + encoded_signature
print(url)
requests.get(url).text

0 件のコメント:

コメントを投稿

飲食店への商品持ち込みを批判する人への反論

持ち込み商品の反対意見について反反論がある。持ち込み商品については、それはマナー違反だからと言う人が多い。商品を持ち込んでいる客がいると、注意したところでバイト代の上がらないバイト、給料の上がらない正社員は注意をし、さらに周りの客でも注意をする人がいる。彼らにその理由を聞くと、「...