Когда я пытался получить все категории через API eBay, торгуя по методу getCategories, У меня есть эта ошибка:
FailureApplication name invalid.API application «222277» invalid.127Error222277RequestError895E895_INTL_APICATALOG_17257399_R1
Пользовательский заголовок:
$headers = array(
'Content-Type:text/xml',
'X-EBAY-API-COMPATIBILITY-LEVEL: 895',
'X-EBAY-API-DEV-NAME: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
'X-EBAY-API-APP-NAME: xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx',
'X-EBAY-API-CERT-NAME: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
'X-EBAY-API-CALL-NAME: GetCategories',
'X-EBAY-API-SITEID: 0'
);
Постфайлы XML
$body = <<<BODY
<?xml version="1.0" encoding="utf-8"?>
<GetCategoriesRequest xmlns="urn:ebay:apis:eBLBaseComponents">
<RequesterCredentials>
<eBayAuthToken>auth token......</eBayAuthToken>
</RequesterCredentials>
<CategorySiteID>0</CategorySiteID>
<DetailLevel>ReturnAll</DetailLevel>
</GetCategoriesRequest>
BODY;
и мой код curl:
$connection = curl_init();
curl_setopt($connection, CURLOPT_URL, $endpoint);
curl_setopt($connection, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($connection, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($connection, CURLOPT_HTTPHEADER, $headers);
curl_setopt($connection, CURLOPT_POST, 1);
curl_setopt($connection, CURLOPT_POSTFIELDS, $body);
curl_setopt($connection, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($connection);
curl_close($connection);
Ebay предоставляет инструмент тестирования API.
Он предварительно заполнит ваши учетные данные и позволит вам сделать тестовый вызов.
Это поможет вам отладить любые ошибки, которые вы можете получить.
К сожалению, eBay недавно прекратил использование своего инструмента тестирования API. Тем не менее, есть некоторые сторонние, которые могут быть достаточными.
Для вашей проблемы, я рекомендую использовать более простой вызов API Shopping под названием GetCategoryInfo. Вам не нужно отправлять запрос или отправлять какие-либо HTTP-заголовки, и вы можете встроить весь вызов в один URL / REST / GET запрос. Это делает отладку намного проще.
В любом случае, я не думаю, что вы можете получить все категории eBay одним запросом. Вместо этого запланируйте цикл по дереву категорий на каждом уровне, собирая имена и идентификаторы дочерних категорий.