PHP eBay API "Неподдерживаемый вызов API" Ошибка
Я пытаюсь получить список продавцов с ebay, и каждый раз, когда я запускаю этот код, я получаю сообщение об ошибке
The API call "GeteBayOfficialTime" is invalid or not supported in this release
Я запускаю это на Mac с Zend Server.
КОД:
define('XML_POST_URL', 'https://api.sandbox.ebay.com/ws/api.dll');
$theData ='
<?xml version="1.0" encoding="utf-8"?>
<GetSellerListRequest xmlns="urn:ebay:apis:eBLBaseComponents">
<RequesterCredentials>
<eBayAuthToken>My Auth Key</eBayAuthToken>
</RequesterCredentials>
<Pagination ComplexType="PaginationType">
<EntriesPerPage>1</EntriesPerPage>
<PageNumber>1</PageNumber>
</Pagination>
<WarningLevel>Low</WarningLevel>
<StartTimeFrom>2011-07-12T21:59:59.005Z</StartTimeFrom>
<StartTimeTo>2011-07-30T21:59:59.005Z</StartTimeTo>
<DetailLevel>ReturnAll</DetailLevel>
</GetSellerListRequest>
';
$headers = array(
'Content-Type' => 'text/xml',
'X-EBAY-API-COMPATIBILITY-LEVEL' => '727',
'X-EBAY-API-DEV-NAME' => '03dbea79-6089-4a00-8b3f-3114882e5d07',
'X-EBAY-API-APP-NAME' => 'sarfaraz-6e72-49e2-a7c0-ce2d2a48702b',
'X-EBAY-API-CERT-NAME' => 'd8382047-b425-40d6-8250-bac1497dc510',
'X-EBAY-API-SITEID' => '0',
'X-EBAY-API-CALL-NAME' => 'GetSellerList'
);
/**
* Initialize handle and set options
*/
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, XML_POST_URL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $theData);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
/**
* Execute the request
*/
$result = curl_exec($ch);
/**
* Close the handle
*/
curl_close($ch);
/**
* Output the results and time
*/
header('Content-Type: text/xml');
echo $result;
Результат:
<GeteBayOfficialTimeResponse>
<Timestamp>2011-07-29 15:59:21</Timestamp>
<Ack>Failure</Ack>
<Errors>
<ShortMessage>Unsupported API call.</ShortMessage>
<LongMessage>The API call "GeteBayOfficialTime" is invalid or not supported in this release.</LongMessage>
<ErrorCode>2</ErrorCode>
<SeverityCode>Error</SeverityCode>
<ErrorClassification>RequestError</ErrorClassification>
</Errors>
<Build>13564081</Build>
</GeteBayOfficialTimeResponse>
2 ответа
Проблема в том, как определяются заголовки, это должен быть стандартный массив, а не ассоциативный массив. Ниже приведен правильный формат:
$headers = array(
'Content-Type: text/xml',
'X-EBAY-API-COMPATIBILITY-LEVEL: 727',
'X-EBAY-API-DEV-NAME: 03dbea79-6089-4a00-8b3f-3114882e5d07',
'X-EBAY-API-APP-NAME: sarfaraz-6e72-49e2-a7c0-ce2d2a48702b',
'X-EBAY-API-CERT-NAME: d8382047-b425-40d6-8250-bac1497dc510',
'X-EBAY-API-SITEID: 0',
'X-EBAY-API-CALL-NAME: GetSellerList'
);
Чтобы получить правильный XML, вы можете использовать инструмент тестирования API. Вы также можете выбрать, какую версию API вы хотели бы использовать. Просто выберите вызов, который хотите сделать, и вы получите XML. Документация часто устарела.