ebay BulkDataExchangeRequests API XML - 缺少 UUID
ebay BulkDataExchangeRequests API XML - UUID is missing
我正在通过向 BulkDataExchangeRequests 发送 AddFixedPriceItemRequest 来测试对 eBay API LMS 端的请求创建上传作业。
当我这样做时,我得到了错误:"UUID is required" 即使在我能找到的文档中它说 UUID 是可选的。但是,我在调用的 body 中包含了一个 UUID。
对于我来说,我找不到整个 API 调用应该是什么样子的例子。 Headers 包括在内。
我在 Ruby 中使用 gems HTTParty 和 Builder 为 XML 编写代码。我的其他电话工作正常,我确认这是实际发送的 XML。
这是我的 XML 和 header 信息的样子:
destination = 'https://webservices.sandbox.ebay.com/BulkDataExchangeService'
headers = {
"X-EBAY-API-COMPATIBILITY-LEVEL"=>"949",
"X-EBAY-API-DEV-NAME"=>"My dev name token",
"X-EBAY-API-APP-NAME"=>"App name token",
"X-EBAY-API-CERT-NAME"=>"Cert name token",
"X-EBAY-SOA-OPERATION-NAME"=>"createUploadJob",
"X-EBAY-SOA-SECURITY-TOKEN" => "My auth token",
"X-EBAY-API-SITEID"=>"0",
"Content-Type"=>"text/xml"}
<?xml version="1.0" encoding="utf-8"?>
<BulkDataExchangeRequests>
<Header>
<SiteId>0</SiteId>
<Version>739</Version>
</Header>
<AddFixedPriceItemRequest xmlns="urn:ebay:apis:eBLBaseComponents">
<RequesterCredentials>
<eBayAuthToken>My Auth token</eBayAuthToken>
</RequesterCredentials>
<ErrorLanguage>en_US</ErrorLanguage>
<WarningLevel>High</WarningLevel>
<Item>
<Title>Listing with a bunch of CSS but no JS</Title>
<Description>
<![CDATA[bunch of html]]>
</Description>
<PrimaryCategory>
<CategoryID>37565</CategoryID>
</PrimaryCategory>
<ConditionID>3000</ConditionID>
<CategoryMappingAllowed>true</CategoryMappingAllowed>
<Country>US</Country>
<Currency>USD</Currency>
<DispatchTimeMax>3</DispatchTimeMax>
<ListingDuration>Days_7</ListingDuration>
<ListingType>FixedPriceItem</ListingType>
<PaymentMethods>PayPal</PaymentMethods>
<PayPalEmailAddress>todd@piedmontred.com</PayPalEmailAddress>
<PictureDetails>
<PictureURL>http://s18.postimg.org/ocjdgkfrt/4_pack.jpg</PictureURL>
</PictureDetails>
<PostalCode>28211</PostalCode>
<ItemSpecifics>
<NameValueList>
<Name>Brand</Name>
<Value>Nike</Value>
</NameValueList>
<NameValueList>
<Name>Model</Name>
<Value>Odyssey</Value>
</NameValueList>
</ItemSpecifics>
<Variations>
<VariationSpecificsSet>
<NameValueList>
<Name>Size</Name>
<Value>XS</Value>
<Value>Large</Value>
</NameValueList>
<NameValueList>
<Name>Color</Name>
<Value>Black</Value>
<Value>Pink</Value>
</NameValueList>
</VariationSpecificsSet>
<Variation>
<SKU>my_first_sku</SKU>
<StartPrice>35.99</StartPrice>
<Quantity>5</Quantity>
<VariationSpecifics>
<NameValueList>
<Name>Size</Name>
<Value>XS</Value>
</NameValueList>
<NameValueList>
<Name>Color</Name>
<Value>Black</Value>
</NameValueList>
</VariationSpecifics>
</Variation>
<Variation>
<SKU>my_second_sku</SKU>
<StartPrice>38.99</StartPrice>
<Quantity>6</Quantity>
<VariationSpecifics>
<NameValueList>
<Name>Size</Name>
<Value>Large</Value>
</NameValueList>
<NameValueList>
<Name>Color</Name>
<Value>Pink</Value>
</NameValueList>
</VariationSpecifics>
</Variation>
<Pictures>
<VariationSpecificName>Color</VariationSpecificName>
<VariationSpecificPictureSet>
<VariationSpecificValue>Black</VariationSpecificValue>
<PictureURL>http://thecodeplayer.com/uploads/s.jpg</PictureURL>
<PictureURL>http://thecodeplayer.com/uploads/1.jpg</PictureURL>
</VariationSpecificPictureSet>
<VariationSpecificPictureSet>
<VariationSpecificValue>Pink</VariationSpecificValue>
<PictureURL>http://thecodeplayer.com/uploads/mediaB.jpg</PictureURL>
<PictureURL>http://thecodeplayer.com/uploads/mediadx.jpg</PictureURL>
</VariationSpecificPictureSet>
</Pictures>
</Variations>
<ReturnPolicy>
<ReturnsAcceptedOption>ReturnsAccepted</ReturnsAcceptedOption>
<RefundOption>MoneyBack</RefundOption>
<ReturnsWithinOption>Days_30</ReturnsWithinOption>
<Description>This is just a description for the return
policy</Description>
<ShippingCostPaidByOption>Buyer</ShippingCostPaidByOption>
</ReturnPolicy>
<ShippingDetails>
<ShippingType>Flat</ShippingType>
<ShippingServiceOptions>
<ShippingServicePriority>1</ShippingServicePriority>
<ShippingService>USPSMedia</ShippingService>
<ShippingServiceCost>2.50</ShippingServiceCost>
</ShippingServiceOptions>
</ShippingDetails>
<Site>US</Site>
<UUID>8deb51e81bdc4b8eb136f92b746dd898</UUID>
</Item>
基于您在上面提供的XML;看来你混淆了LMS的本质。
- LMS 不是打电话 -> 更改 eBay 列表。
- LMS 是一个 multi-step 处理批量操作的进程。
- 由于批量性质,这些步骤被分成多个调用。
- 这样做的好处是服务可以单独验证每个步骤。
- 它还简化了大负载的发送。
这意味着您不得在 createUploadJob 中包含 Item
负载。 (参见 Ebay Documentation)。
一般来说,您必须:
- 创建上传作业。 (createUploadJob).
- 然后上传文件。 (uploadFile).
- 然后开始作业。 (startUploadJob).
其次是:
- (应该)等一段时间。
- 检查作业的状态。 (getJobStatus).
- 下载结果文件。 (downloadFile).
我正在通过向 BulkDataExchangeRequests 发送 AddFixedPriceItemRequest 来测试对 eBay API LMS 端的请求创建上传作业。
当我这样做时,我得到了错误:"UUID is required" 即使在我能找到的文档中它说 UUID 是可选的。但是,我在调用的 body 中包含了一个 UUID。
对于我来说,我找不到整个 API 调用应该是什么样子的例子。 Headers 包括在内。
我在 Ruby 中使用 gems HTTParty 和 Builder 为 XML 编写代码。我的其他电话工作正常,我确认这是实际发送的 XML。
这是我的 XML 和 header 信息的样子:
destination = 'https://webservices.sandbox.ebay.com/BulkDataExchangeService'
headers = {
"X-EBAY-API-COMPATIBILITY-LEVEL"=>"949",
"X-EBAY-API-DEV-NAME"=>"My dev name token",
"X-EBAY-API-APP-NAME"=>"App name token",
"X-EBAY-API-CERT-NAME"=>"Cert name token",
"X-EBAY-SOA-OPERATION-NAME"=>"createUploadJob",
"X-EBAY-SOA-SECURITY-TOKEN" => "My auth token",
"X-EBAY-API-SITEID"=>"0",
"Content-Type"=>"text/xml"}
<?xml version="1.0" encoding="utf-8"?>
<BulkDataExchangeRequests>
<Header>
<SiteId>0</SiteId>
<Version>739</Version>
</Header>
<AddFixedPriceItemRequest xmlns="urn:ebay:apis:eBLBaseComponents">
<RequesterCredentials>
<eBayAuthToken>My Auth token</eBayAuthToken>
</RequesterCredentials>
<ErrorLanguage>en_US</ErrorLanguage>
<WarningLevel>High</WarningLevel>
<Item>
<Title>Listing with a bunch of CSS but no JS</Title>
<Description>
<![CDATA[bunch of html]]>
</Description>
<PrimaryCategory>
<CategoryID>37565</CategoryID>
</PrimaryCategory>
<ConditionID>3000</ConditionID>
<CategoryMappingAllowed>true</CategoryMappingAllowed>
<Country>US</Country>
<Currency>USD</Currency>
<DispatchTimeMax>3</DispatchTimeMax>
<ListingDuration>Days_7</ListingDuration>
<ListingType>FixedPriceItem</ListingType>
<PaymentMethods>PayPal</PaymentMethods>
<PayPalEmailAddress>todd@piedmontred.com</PayPalEmailAddress>
<PictureDetails>
<PictureURL>http://s18.postimg.org/ocjdgkfrt/4_pack.jpg</PictureURL>
</PictureDetails>
<PostalCode>28211</PostalCode>
<ItemSpecifics>
<NameValueList>
<Name>Brand</Name>
<Value>Nike</Value>
</NameValueList>
<NameValueList>
<Name>Model</Name>
<Value>Odyssey</Value>
</NameValueList>
</ItemSpecifics>
<Variations>
<VariationSpecificsSet>
<NameValueList>
<Name>Size</Name>
<Value>XS</Value>
<Value>Large</Value>
</NameValueList>
<NameValueList>
<Name>Color</Name>
<Value>Black</Value>
<Value>Pink</Value>
</NameValueList>
</VariationSpecificsSet>
<Variation>
<SKU>my_first_sku</SKU>
<StartPrice>35.99</StartPrice>
<Quantity>5</Quantity>
<VariationSpecifics>
<NameValueList>
<Name>Size</Name>
<Value>XS</Value>
</NameValueList>
<NameValueList>
<Name>Color</Name>
<Value>Black</Value>
</NameValueList>
</VariationSpecifics>
</Variation>
<Variation>
<SKU>my_second_sku</SKU>
<StartPrice>38.99</StartPrice>
<Quantity>6</Quantity>
<VariationSpecifics>
<NameValueList>
<Name>Size</Name>
<Value>Large</Value>
</NameValueList>
<NameValueList>
<Name>Color</Name>
<Value>Pink</Value>
</NameValueList>
</VariationSpecifics>
</Variation>
<Pictures>
<VariationSpecificName>Color</VariationSpecificName>
<VariationSpecificPictureSet>
<VariationSpecificValue>Black</VariationSpecificValue>
<PictureURL>http://thecodeplayer.com/uploads/s.jpg</PictureURL>
<PictureURL>http://thecodeplayer.com/uploads/1.jpg</PictureURL>
</VariationSpecificPictureSet>
<VariationSpecificPictureSet>
<VariationSpecificValue>Pink</VariationSpecificValue>
<PictureURL>http://thecodeplayer.com/uploads/mediaB.jpg</PictureURL>
<PictureURL>http://thecodeplayer.com/uploads/mediadx.jpg</PictureURL>
</VariationSpecificPictureSet>
</Pictures>
</Variations>
<ReturnPolicy>
<ReturnsAcceptedOption>ReturnsAccepted</ReturnsAcceptedOption>
<RefundOption>MoneyBack</RefundOption>
<ReturnsWithinOption>Days_30</ReturnsWithinOption>
<Description>This is just a description for the return
policy</Description>
<ShippingCostPaidByOption>Buyer</ShippingCostPaidByOption>
</ReturnPolicy>
<ShippingDetails>
<ShippingType>Flat</ShippingType>
<ShippingServiceOptions>
<ShippingServicePriority>1</ShippingServicePriority>
<ShippingService>USPSMedia</ShippingService>
<ShippingServiceCost>2.50</ShippingServiceCost>
</ShippingServiceOptions>
</ShippingDetails>
<Site>US</Site>
<UUID>8deb51e81bdc4b8eb136f92b746dd898</UUID>
</Item>
基于您在上面提供的XML;看来你混淆了LMS的本质。
- LMS 不是打电话 -> 更改 eBay 列表。
- LMS 是一个 multi-step 处理批量操作的进程。
- 由于批量性质,这些步骤被分成多个调用。
- 这样做的好处是服务可以单独验证每个步骤。
- 它还简化了大负载的发送。
这意味着您不得在 createUploadJob 中包含 Item
负载。 (参见 Ebay Documentation)。
一般来说,您必须:
- 创建上传作业。 (createUploadJob).
- 然后上传文件。 (uploadFile).
- 然后开始作业。 (startUploadJob).
其次是:
- (应该)等一段时间。
- 检查作业的状态。 (getJobStatus).
- 下载结果文件。 (downloadFile).