Какой самый простой способ использовать / подписать API рекламы продуктов AWS с помощью Python? - PullRequest
0 голосов
/ 16 октября 2018

Я бился головой о стену, пытаясь разными способами правильно подписать мой запрос, чтобы я мог сделать вызов api с извлечением цены через службу aws.

Вот вызов, который я пытаюсь сделать: https://docs.aws.amazon.com/AWSECommerceService/latest/DG/EX_RetrievingPriceInformation.html

Через некоторое время я решил, что будет лучше использовать существующий модуль, если это возможно, поэтому я пытаюсь использовать: https://github.com/DavidMuller/aws-requests-auth

Однако, когда я пытаюсь изменить егоДля использования с запросом получения цены я столкнулся с некоторыми проблемами.Есть ли способ переделать следующий код или есть лучший путь вперед, который я должен взять?

import sys, os, base64, datetime, hashlib, hmac
import requests
from aws_requests_auth.aws_auth import AWSRequestsAuth

associate_tag = "IMA_associate"
access_key = "SLIGHTLYLESSSECRETKEY"
secret_key = "SUPERSECRETKEY"

t = datetime.datetime.utcnow()
amzdate = t.strftime('%Y%m%dT%H%M%SZ')
datestamp = t.strftime('%Y%m%d') # Date w/o time, used in credential scope

auth = AWSRequestsAuth(aws_access_key=access_key,
                       aws_secret_access_key=secret_key,
                       aws_host='http://webservices.amazon.com/onca/xml',
                       aws_region='us-west-1',
                       aws_service='AWSECommerceService')

endpoint = 'http://webservices.amazon.com/onca/xml' \
    + '?AssociateTag=' + associate_tag \
    + '&AWSAccessKeyId=' + access_key \
    + '&IdType=ASIN' \
    + '&ItemId=B00KOKTZLQ' \
    + '&Operation=ItemLookup' \
    + '&ResponseGroup=Offers' \
    + '&Service=AWSECommerceService' \
    # + '&Signature=' + auth \
    + '&Timestamp=' + str(datestamp)


response = requests.get(endpoint, auth=auth)
print(response.content)

Я действительно ценю любую помощь, которую я могу получить в этом!Включая только точку в правильном направлении, это немного из моей рубки.

1 Ответ

0 голосов
/ 18 октября 2018

Мне удалось найти очень полезный модуль Python, который позволил бы мне решить вышеуказанную проблему.

https://github.com/yoavaviram/python-amazon-simple-product-api

Этот модуль чрезвычайно упрощает вызовы продуктов API Amazon API.В нем отсутствуют некоторые характеристики продукта, которые предлагает API, но было достаточно легко добавить их в проект, и я буду помещать pr со всей новой информацией, так что, надеюсь, к тому времени, когда кто-то прочитает это, он будет готов с доступомко всей информации, которую предлагает API.

...