Ebay finditems高级呼叫,包括GetHistograms



Ebay webservices和PHP SDK中的Finditemsadvanced调用包括为类别获取istograms的可能性。

findservices .php显示以下代码:

public function getHistograms(DTSeBaySDKFindingTypesGetHistogramsRequest $request)
{
    return $this->callOperation(
        'getHistograms',
        $request,
        'DTSeBaySDKFindingTypesGetHistogramsResponse'
    );
}
public function findItemsAdvanced(DTSeBaySDKFindingTypesFindItemsAdvancedRequest $request)
{
    return $this->callOperation(
        'findItemsAdvanced',
        $request,
        'DTSeBaySDKFindingTypesFindItemsAdvancedResponse'
    );
}

在我的控制器中,我尝试了两个版本来调用finditemsadvanced,包括GetHistograms。

/** Create the service object.*/
$service = new DTSeBaySDKFindingServicesFindingService(array(
    'appId' => $config['production']['appId'],
    'apiVersion' => $config['findingApiVersion'],
    'globalId' => DTSeBaySDKConstantsGlobalIds::US
));
/** Create the request object.*/
$request = new DTSeBaySDKFindingTypesFindItemsAdvancedRequest();
$request->keywords = 'ipod nano';
$request->categoryId = array('73839');/** Search across two categories. * DVDs & Movies > DVDs & Blue-ray (617) * Books > Fiction & Literature (171228)*/
$request->outputSelector = array('AspectHistogram','CategoryHistogram','SellerInfo');
$itemFilter = new DTSeBaySDKFindingTypesItemFilter();/** Filter results to only include auction items or auctions with buy it now. */
$itemFilter->name = 'ListingType';
$itemFilter->value[] = 'FixedPrice';
$itemFilter->value[] = 'AuctionWithBIN';
$request->itemFilter[] = $itemFilter;
/** Get Histograms */
check below option 1 and option 2 and its errors
/** response */
$response = $service->findItemsAdvanced($request);

使用选项1:

$request->getHistograms = new DTSeBaySDKFindingTypesGetHistogramsRequest();
$request->getHistograms = (array('73839'));

,但它给我以下错误:Unknown property: DTSeBaySDKFindingTypesFindItemsAdvancedRequest::getHistograms

使用选项2:

$request1 = new DTSeBaySDKFindingTypesGetHistogramsRequest();
$histograms = $service->getHistograms($request1);
$request->$histograms = (array('73839'));

,但它给我以下错误:"Unknown property: DTSeBaySDKFindingTypesFindItemsAdvancedRequest::Object"

我知道在SDK中getHistograms()不是FindItemsAdvanced()的一部分,但它是FindingService.php的一部分,因此我认为它可以在相同的操作中调用。在同一呼叫中使用直方图查找项的任何帮助或示例代码都非常感谢。

您正在使用的类别是消费电子>便携式音频&耳机> ipod &MP3播放器(73839)。虽然这是一个有效的类别ID,但是getHistograms和findItemsAdvanced都不会返回categoryHistogram元素。这样做的原因在getHistograms

的文档中有解释

该容器只有在指定的类别有

时才返回儿童类别。

还有findItemsAdvanced文档

为搜索结果中的项返回的类别id是针对叶子的列出项目的类别。如果你使用这些分类id作为输入,响应将不会返回类别直方图。

换句话说,如果在请求中指定了叶子类别,则任何服务都不会返回categoryHistogram元素。叶子类别就是没有子类别的类别。由于73839类别是叶子类别,您将不得不使用其父类消费电子>便携式音频&耳机(15052)。

下面的链接应该返回类别直方图。只需替换URL中的<YOUR APP ID>即可。

http://svcs.ebay.com/services/search/FindingService/v1?SECURITY-APPNAME=<YOUR APP ID>&OPERATION-NAME=findItemsAdvanced&SERVICE-VERSION=1.13.0&GLOBAL-ID=EBAY-US&RESPONSE-DATA-FORMAT=XML&REST-PAYLOAD&categoryId(0)=15052&outputSelector(0)=AspectHistogram&outputSelector(1)=CategoryHistogram&outputSelector(2)=SellerInfo
http://svcs.ebay.com/services/search/FindingService/v1?SECURITY-APPNAME=<YOUR APP ID>&OPERATION-NAME=getHistograms&SERVICE-VERSION=1.13.0&GLOBAL-ID=EBAY-US&RESPONSE-DATA-FORMAT=XML&REST-PAYLOAD&categoryId(0)=15052

最新更新