Похоже, вы пытаетесь использовать eBay Shopping API, в частности вызов FindItemsAdvanced
, который, как я считаю, устарел довольно давно и, возможно, больше не работает (я больше не вижу его в ссылке на вызов). Что вы хотите сделать, так это использовать findItemsAdvanced
от eBay's Finding API.
Во-первых, вам необходимо изменить свой API конечной & строки запроса параметры немного (см вышеупомянутую ссылку findItemsAdvanced
вызова для конкретики, но я считаю, что это будет выглядеть следующим образом (я не коснулся моего findItemsAdvanced
требует, по крайней мере, 6 месяцев, так что я не проверял это):
$endpoint = 'http://svcs.ebay.com/services/search/FindingService/v1?';
$responseEncoding = 'XML';
$version = '1.8.0'; // API version number (they're actually up to 1.11.0 at this point
$appID = 'asdf3e6e3';
$itemSort = "EndTimeSoonest";
//find items advanced
$apicalla = "$endpoint"
."OPERATION-NAME=findItemsAdvanced"
."&SERVICE-VERSION=$version"
."&GLOBAL-ID=EBAY-US"
."&SECURITY-APPNAME=$appID"
//."&MaxEntries=10" // look for an equivalent for this (maybe paginationInput.entriesPerPage?)
."&sortOrder=EndTimeSoonest"
//."&ItemType=AllItemTypes" // not needed AFAICT, otherwise look at itemFilterType
."&descriptionSearch=true";
."& RESPONSE-DATA-FORMAT=$responseEncoding";
$resp = simplexml_load_file($apicalla);
в дополнение к этому, чтобы использовать findItemsAdvanced
, необходимо указать, что вы ищете либо категории (categoryId
) или по ключевым словам (keywords
), поэтому сообщение об ошибке «Пожалуйста, укажите запрос!».
Таким образом, вы также должны добавить что-то вроде следующих (предполагающих ключевых слов):
$keywords = "something";
$apicalla .= "&keywords=" . urlencode($keywords);
Давать вам следующее:
$endpoint = 'http://svcs.ebay.com/services/search/FindingService/v1?';
$responseEncoding = 'XML';
$version = '1.8.0'; // API version number (they're actually up to 1.11.0 at this point
$appID = 'asdf3e6e3';
$itemSort = "EndTimeSoonest";
$keywords = "something"; // make sure this is a valid keyword or keywords
//find items advanced
$apicalla = "$endpoint"
."OPERATION-NAME=findItemsAdvanced"
."&SERVICE-VERSION=$version"
."&GLOBAL-ID=EBAY-US"
."&SECURITY-APPNAME=$appID"
//."&MaxEntries=10" // look for an equivalent for this (maybe paginationInput.entriesPerPage?)
."&sortOrder=$itemSort"
//."&ItemType=AllItemTypes" // not needed AFAICT, otherwise look at itemFilterType
."&descriptionSearch=true";
."& RESPONSE-DATA-FORMAT=$responseEncoding"
."&keywords=" . urlencode($keywords);
$resp = simplexml_load_file($apicalla);
Последнее замечание: Если вы хотите загрузить более подробную информацию о конкретных элементы, которые вы найдете в результатах поиска, вы все равно хотите использовать API покупок (в частности, звонки GetSingleItem & GetMultipleItems). Таким образом, вы можете в конечном счете использовать сочетание приложений для поиска &.
Получаете ли вы что-нибудь обратно, если вы попробуете 'echo file_get_contents ($ apicalla)'? Если нет, то у вас есть проблема связи - url fopen может быть отключен, исходящие HTTP-запросы с сервера могут быть заблокированы, ebay может иметь черный список ваших IP-адресов и т. Д. –
жаль, что он печатает что-то Marc, но у меня есть сделал вызов getMostBooks раньше и, похоже, работает хорошо. –
он возвращает '2012-05-02T19: 05: 05.024Z Failure Пожалуйста, сформулируйте запрос! Укажите запрос! 10.1 Ошибка RequestError E771_CORE_BUNDLED_14784928_R1 771' –