PHP eBay API“不支持的API调用”错误

时间:2011-07-29 16:11:16

标签: php ebay ebay-api

我想从ebay中提取卖家列表,每次运行此代码时,都会收到错误

  

The API call "GeteBayOfficialTime" is invalid or not supported in this release

我在使用Zend Server的Mac上运行它。

CODE:

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 个答案:

答案 0 :(得分:8)

问题是标头的定义方式,它应该是标准数组,而不是关联数组。请参阅下面的格式正确:

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

);

答案 1 :(得分:1)

为了获得正确的XML,您可以使用API test tool。您还可以选择要使用的API版本。只需选择您要进行的调用,即可获得XML。文档经常过时。