Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP eBay API GeteBayOfficialTime call returns 'Unsupported API call' error

Tags:

php

ebay-api

I am trying to pull a seller list from eBay and every time I run this code, I get the error

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

I'm running this on a Mac with Zend Server.

Request in PHP:

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;  

Response:

<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>
like image 646
Saf Suleman Avatar asked Oct 26 '25 15:10

Saf Suleman


2 Answers

The problem is the way the headers are defined, it should be a standard array, not an associative array. See below for correct format:

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

);

like image 154
Ryan Avatar answered Oct 29 '25 06:10

Ryan


In order to get the correct XML you can use the API test tool. You can also choose which API version you would like to use. Just choose the call you want to make, and you will get the XML. The documentation is often outdated.

like image 37
Alex Flom Avatar answered Oct 29 '25 06:10

Alex Flom