Amazon SP-API调用Get Orders获取买家信息时RDT调用报错如何解决
亚马逊SP-API调用create_restricted_data_token报错排查方案
报错根因
你遇到的InvalidInput报错Empty target resource argument found,是因为python-amazon-sp-api库的create_restricted_data_token方法入参格式不符合要求,你直接传递了path参数,但是接口要求必须传入结构化的restricted_resources参数来声明需要访问的受限资源。
修复步骤
- 先确认你安装的
python-amazon-sp-api版本不低于0.18.0,避免旧版本的参数兼容问题 - 调整RDT申请代码的参数结构,单路径申请的示例代码如下:
from sp_api.api import Tokens from sp_api.base import Marketplaces tokens_client = Tokens(credentials=credentials, marketplace=Marketplaces.DE) res = tokens_client.create_restricted_data_token( restricted_resources=[ { "method": "GET", "path": "/orders/v0/orders/xxx/address" } ] ) # 提取返回的RDT rdt = res.payload.get('restrictedDataToken') print(rdt)
- 如果你需要调用
get_orders接口批量获取订单的买家信息,申请RDT时需要额外指定dataElements参数,示例如下:
res = tokens_client.create_restricted_data_token( restricted_resources=[ { "method": "GET", "path": "/orders/v0/orders", "dataElements": ["buyerInfo", "shippingAddress"] } ] )
其他注意事项
- 申请RDT时填写的资源路径、请求方法必须和你后续实际调用的接口完全一致,否则会提示权限错误
- 路径中涉及的订单ID必须是当前开发者身份有权限访问的站点订单,无权限的订单会导致RDT申请失败或者后续接口调用返回403
内容的提问来源于stack exchange,提问作者Luis Blatz
相关产品推荐
相关产品推荐

