Boto 代表他人提出请求

标签 boto

我有一个我注册为亚马逊开发者的账户。 (我们称其为 developer 帐户)

我有另一个账户,我将其视为卖家账户(也是亚马逊开发者账户)。 (我们称此为seller 帐户)

我希望我的开发者帐户代表卖家向亚马逊发出请求。

所以 seller 调用我的 developer 应用程序,它与亚马逊对话。

根据条款和条件,我必须使用开发人员的访问权限和 key 。

我已经为我的seller提供了developer ID,并且我有一个Seller IdMarketplace Id,以及MWS 授权 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 失败

有没有办法让我(开发人员)可以代表其他人(卖家)提出请求?

最佳答案

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

在更明确的解决方案之前,对您可能遇到的问题进行一些尝试:

  1. boto3 不支持 MWS。如果你正在使用它,它将不起作用。使用boto
  2. MWS 在非北美地区 (NA) 需要您可能未提供的额外配置

你的问题可能是...

您正在尝试在 MWS 的 args 中设置 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,但我认为您必须指定所有命名参数,除非您知道它们的明确顺序。

python 函数的参数本质上是一个字典,python 只是为您提供了一些便利,可以将调用顺序与声明顺序对齐。这就是为什么您可以明确地在调用中以任何顺序使用 argumentName = argumentValue, ... 并且您的函数仍然有效。

关于Boto 代表他人提出请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56486045/

相关文章:

amazon-web-services - aws boto sns-通过设备 token 获取endpoint_arn

django - 通过django s3中间件保存文件时获取Http403(但可以在shell中使用boto保存)

python - 使用 boto (AWS Python),如何获取 IAM 用户列表?

python - 模拟boto3 S3客户端方法Python

django - 亚马逊 s3 提供的文件速度慢得难以忍受

python - 用 moto 模拟 lambda 响应

python - 您如何连接到 AWS Elastic Transcoder?

boto - 如何使用 boto 在 Dynamo 中存储二进制数据?

python - DynamoDB 并行扫描不拆分结果

python - 如何连接到 boto 中的现有 CloudSearch 域?