2015-04-06 3 views
0

Когда я пытался извлечь все категории через торговый API eBay с помощью метода getCategories, у меня есть эта ошибка:Ebay торговля API GetCategories

FailureApplication name invalid.API application "222277" invalid.127Error222277RequestError895E895_INTL_APICATALOG_17257399_R1

userd заголовка является:

$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 postfileds:

$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; 

и мой код свернуть:

$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); 

ответ

2

Ebay предоставляет инструмент тест API.

Он предварительно заполнит ваши учетные данные и даст вам пройти тестовый вызов.

Test Tool

Это поможет вам отлаживать любые ошибки, которые вы могли бы получить.

2

К сожалению, eBay недавно прекратил использование своего инструмента тестирования API. Тем не менее, есть некоторые сторонние, которые могут быть достаточными.

Для вашей проблемы я рекомендую использовать более простой вызов API для покупки, называемый GetCategoryInfo. Вам не нужно отправлять запрос или отправлять какие-либо заголовки HTTP, и вы можете создать весь свой запрос в 1 URL/REST/GET. Это значительно облегчает отладку.

В любом случае, вы идете об этом, я не думаю, что вы можете получить все категории eBay с 1 запросом. Вместо этого планируйте цикл через дерево категорий на каждом уровне, собирая имена и идентификаторы дочерних категорий.