Celigo数据流调用Amazon SP-API删除Listing遇InvalidInput错误求助
调用Amazon SP-API删除Listing端点返回InvalidInput错误的排查方案
问题描述
在Celigo集成数据流中调用Amazon SP-API的2021-08-01版本Listings Items删除端点(HTTP方法为Delete),请求信息如下:
请求URI:
https://sellingpartnerapi-na.amazon.com/listings/2021-08-01/items/ANRRIZ***sellerAccount/{{record.SKU}}?marketplaceIds=ATVPDKIKX**marketplaceId
请求头:
{ "accept": "application/json", "x-amz-access-token": "********", "Host": "sellingpartnerapi-na.amazon.com", "Content-Type": "application/x-www-form-urlencoded; charset=utf-8", "Content-Length": 298, "X-Amz-Date": "20221017T165222Z", "Authorization": "AWS4-HMAC-SHA256 Credential=AKIA4QUUOLH***/20221017/us-east-1/execute-api/aws4_request, SignedHeaders=accept;content-length;content-type;host;x-amz-access-token;x-amz-date, Signature=fd9a396bbca14ce1fcbf52baad46b2076cd85dea1c9ca097b6***", "accept-encoding": "gzip, deflate" }
收到无详细信息的错误响应:
{ "errors": [ { "code": "InvalidInput", "message": "Invalid Input", "details": "" } ] }
以下是针对性的排查方向:
1. URI结构校正
SP-API的Listings Items Delete端点要求URI严格遵循/listings/2021-08-01/items/{sellerId}/{sku}?marketplaceIds={marketplaceId}格式:
- 你的URI中
ANRRIZ***sellerAccount/{{record.SKU}}存在拼接错误,需将sellerId(如ANRRIZXXX)与SKU用/分隔,移除冗余的sellerAccount字样 - 确认
marketplaceIds参数为完整有效的市场ID(例如美国站为ATVPDKIKX0DER),删除多余的后缀字符
2. 移除冗余请求头
Delete请求无需传递请求体,但你的请求头中包含Content-Type和Content-Length,这会触发服务器的无效输入判定:
- 直接删除
Content-Type: application/x-www-form-urlencoded; charset=utf-8和Content-Length: 298这两个请求头 - 确保请求发送时无额外请求体内容
3. SKU有效性验证
确认{{record.SKU}}渲染后的实际值满足:
- 归属于URI中指定的sellerId
- 在目标marketplace中已存在且处于可操作状态(未被删除、未被平台锁定等)
4. 签名与请求头一致性检查
检查Authorization头的SignedHeaders字段是否与实际发送的请求头完全匹配:
- 当前请求头包含
accept-encoding,但SignedHeaders未包含该字段,可能导致签名验证异常(需补充到SignedHeaders中或删除该请求头) - 确保所有请求头的拼写、大小写与SignedHeaders中的定义一致
内容的提问来源于stack exchange,提问作者Nivi
相关产品推荐
相关产品推荐

