eBay Finding API - findCompletedItems - 如何返回输出中的特定方面

Tra*_*rae 5 ebay-api

我正在使用findCompletedItems来查找与特定类别(Men's Shoes)中的某组关键字匹配的所有项目,并且我很容易使用aspectFilter指定我只想要所有特定的鞋码:

<aspectFilter>
   <aspectName>US Shoe Size (Men's)</aspectName>
   <aspectValueName>11</aspectValueName>
</aspectFilter>
Run Code Online (Sandbox Code Playgroud)

但是,如果我想要关键字的所有结果,并且我希望输出包含每个结果的特定方面值(鞋码),即使它们不完全相同,我将如何去做呢?

我花了3个小时黑客使用API​​测试工具和谷歌搜索代码示例,但我无法弄清楚如何查询所有默认数据PLUS有任何其他方面,我之后也包括在内在输出中,没有使用aspectFilter多次查询所有不同的大小,这是非常低效的.

Gia*_*sio 7

你不能.

您只需建立一个指定的请求outputSelector类型AspectHistogram.但是,响应仅包含有关您的请求所选项目方面的汇总信息.您可以在请求中包含所需的outputSelectors数量,但方面将始终聚合,因为(根据定义)" 方面是给定域中的项目共享的项目特征 "(读取域=搜索结果).

可能你正在寻找的是项目属性,它应该已经存在于结果中,因为它们是每个项目的特定属性.

编辑

根据SearchResult.item.attribute的特定于呼叫的输出字段表 :"有条件地返回该字段.有关条件的说明,请参阅字段文档."

这意味着此类属性特定于找到的项目:每个属性可以存在于项目中但不能存在于另一个项目中.您无需为获取它们而做任何特殊操作.您将在<SearchResult>元素中找到它们<item>,每个元素内部都在<attribute>元素中.

在响应XML中,你应该找到这样的东西:

<?xml version="1.0" encoding="utf-8"?>
<findItemsAdvancedResponse xmlns="http://www.ebay.com/marketplace/search/v1/services">
  <!-- various things here... -->
  <searchResult count="1">
  <item>
    <attribute>
      <name>Size</name>
      <value>XXL</value>
    </attribute>
    <!-- ... more attribute nodes allowed here ... -->
    <!-- ... more item info here ... -->
  </item>
  <!-- ... more items ... -->
  </searchResult>
</findItemsAdvancedResponse>
Run Code Online (Sandbox Code Playgroud)

您可以在此处找到更多示例,您还可以使用本文档深入了解XML结果内容.

编辑2
这似乎与文档相矛盾,该文档指出:

使用ItemAttribute的一个或多个字段的调用:

findCompletedItems,findItemsAdvanced,findItemsByCategory,findItemsByKeywords,findItemsByProduct,findItemsIneBayStores

BTW,看起来你必须使用GetSingleItemIncludeSelector = ItemSpecifics来查找通过findCompletedItems找到的项目.我会尝试通过将"ItemSpecifics"作为IncludeSelector或OutputSelects传递来破解findItemsAdvanced api.我的最后建议是询问客户服务.祝好运!