Ebay FindItemsAdvanced call, включая GetHistograms

Finditemsadvanced позвоните в веб-сервисы Ebay и в SDK для PHP включает в себя возможность получать гистограммы для категорий.

FindingServices.php отобразить следующий код:

public function getHistograms(\DTS\eBaySDK\Finding\Types\GetHistogramsRequest $request)
{
return $this->callOperation(
'getHistograms',
$request,
'\DTS\eBaySDK\Finding\Types\GetHistogramsResponse'
);
}

public function findItemsAdvanced(\DTS\eBaySDK\Finding\Types\FindItemsAdvancedRequest $request)
{
return $this->callOperation(
'findItemsAdvanced',
$request,
'\DTS\eBaySDK\Finding\Types\FindItemsAdvancedResponse'
);
}

В моем контроллере я пытаюсь вызвать две версии FindingItemsAdvanced, включая GetHistograms.

/** Create the service object.*/
$service = new DTS\eBaySDK\Finding\Services\FindingService(array(
'appId' => $config['production']['appId'],
'apiVersion' => $config['findingApiVersion'],
'globalId' => DTS\eBaySDK\Constants\GlobalIds::US
));

/** Create the request object.*/
$request = new DTS\eBaySDK\Finding\Types\FindItemsAdvancedRequest();
$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 DTS\eBaySDK\Finding\Types\ItemFilter();/** 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 DTS\eBaySDK\Finding\Types\GetHistogramsRequest();
$request->getHistograms = (array('73839'));

но это дает мне следующую ошибку: Unknown property: DTS\eBaySDK\Finding\Types\FindItemsAdvancedRequest::getHistograms

используя вариант 2:

$request1 = new DTS\eBaySDK\Finding\Types\GetHistogramsRequest();
$histograms = $service->getHistograms($request1);
$request->$histograms = (array('73839'));

но это дает мне следующую ошибку: "Unknown property: DTS\eBaySDK\Finding\Types\FindItemsAdvancedRequest::Object"

Я знаю, что в SDK getHistograms () не является частью FindItemsAdvanced (), но является частью FindingService.php, поэтому я предполагаю, что он может быть вызван в том же действии. Любая помощь или пример кода с использованием finditems с гистограммами в одном вызове приветствуется.

1

Решение

Категория, которую вы используете: Бытовая электроника> Portable Audio & Наушники> iPod & MP3-плееры (73839). Хотя это допустимый идентификатор категории, оба метода getHistograms и findItemsAdvanced не будут возвращать элемент categoryHistogram. Причина этого объясняется в документации для getHistograms

Этот контейнер возвращается только тогда, когда указанная категория имеет
детские категории.

А также в findItemsAdvanced документация.

Идентификаторы категорий, возвращаемые для элементов в результатах поиска, относятся к листу.
категории, в которых перечислены предметы. Если вы используете эти категории
В качестве входных данных ответ не будет возвращать гистограмму категории.

Другими словами, элемент categoryHistogram не будет возвращен ни одной из служб, если в запросе указана конечная категория. Категория листа — это просто категория, в которой нет детей. Поскольку категория 73839 является конечной категорией, вместо этого вам придется использовать родительский компонент Consumer Electronics> Portable Audio. & Наушники (15052).

Ссылки ниже должны возвращать категорию гистограммы. Вам просто нужно заменить <YOUR APP ID> в URL.

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
3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector