2011-07-29 3 views
3

Je suis en train de tirer une liste de vendeur sur ebay et chaque fois que je lance ce code, je reçois l'erreurPHP API eBay « appel API non prise en charge » Erreur

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

Je suis en cours d'exécution sur un Mac avec Zend Server.

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; 

Résultat:

<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> 
+0

J'ai commencé à recevoir cette erreur aussi, après avoir travaillé pendant des années. Quelqu'un a une idée de tout changement à l'API ebay? – Jamie

Répondre

1

Afin d'obtenir le code XML correct, vous pouvez utiliser le API test tool. Vous pouvez également choisir la version de l'API que vous souhaitez utiliser. Choisissez simplement l'appel que vous voulez faire, et vous obtiendrez le XML. La documentation est souvent périmée.

8

Le problème est la façon dont les en-têtes sont définis, ce devrait être un tableau standard, pas un tableau associatif. Voir ci-dessous pour le format correct:

$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

La meilleure réponse ici – barners