Boto代他人提出请求

时间:2019-06-06 22:58:40

标签: boto

我有一个我注册为亚马逊开发人员的帐户。 (我们将此称为developer帐户)

我有另一个帐户,我将其视为卖方帐户(也是Amazon开发人员帐户)。 (我们叫这个seller帐户)

我希望我的developer帐户代表seller向亚马逊发出请求。

因此seller调用了我的developer应用,该应用与Amazon通讯。

根据条款和条件,我必须使用developer's访问和密钥。

我给了seller developer ID,并且有一个Seller IdMarketplace Id和一个MWS Auth Token

但是,我不确定MWSConnection的工作方式,因为boto似乎没有输入MWS Auth Token的参数

我尝试过。

access_key_id = developer_access_key_id
secret_key = developer_secret_key
seller_id = seller_id
MWSConnection(access_key_id, secret_key, SellerId=seller_id)

这将导致AccessDenied

失败

有没有一种方法可以使我(developer)代表他人(seller)发出请求?

1 个答案:

答案 0 :(得分:0)

有些事情可能不是您的问题,但可能是

在更明确的解决方案出台之前,先刺探一下您可能遇到的问题:

  1. boto3不支持MWS。如果您使用它,它将无法正常工作。使用boto
  2. MWS在非北美(NA)地区的地区需要您可能未提供的其他配置

您的问题可能是...

您要进入,并尝试通过以下方式在MWS的参数中设置SellerID:

MWSConnection(access_key_id, secret_key, SellerId=seller_id)

您可能应该这样做:

from boto import mws

from boto.mws.connection import MWSConnection
accessKey = developer_access_key_id # Python prefers camelCase
secretKey = developer_secret_key    # Python prefers camelCase
merchantID = "XXXXXXXXXX"           # You never specified this

mws = MWSConnection(accessKey, secretKey)
mws.Merchant = merchantID
mws.SellerId = merchantID

虽然可以通过关键字参数传递SellerId,但除非您知道它们的显式顺序,否则我相信您必须指定 all 命名参数。

python函数的参数本质上是一个字典,而python为您将调用的顺序与声明的顺序对齐提供了一些便利。这就是为什么您可以明确地在调用中以任何顺序使用argumentName = argumentValue, ...并保持功能正常的原因。