2015-07-20 71 views
0

我使用php和cURL與eBay api進行交互。eBay API UploadSiteHosted圖片調用給出了錯誤的錯誤

這是當我嘗試上傳使用eBay的API和UploadSiteHostedPictures圖像長的錯誤信息,我得到:

API調用「GeteBayOfficialTime」是無效的或本 版本不支持。

全錯誤對象:

對象(的SimpleXMLElement)#14(5){[ 「的ShortMessage」] =>串(21) 「不支持的API調用。」 [「LongMessage」] => string(79)「API調用 」GeteBayOfficialTime「在此版本中無效或不受支持。」 [ 「錯誤碼」] =>串(1) 「2」[ 「SeverityCode」] =>串(5) 「錯誤」 [ 「ErrorClassification」] =>串(12) 「RequestError」}

這沒有意義,因爲我沒有打電話給GeteBayOfficialTime。這是我的代碼。我顯然已經取代了敏感數據。

$xml = '<?xml version="1.0" encoding="utf-8"?>'; 
$xml .= '<UploadSiteHostedPicturesRequest xmlns="urn:ebay:apis:eBLBaseComponents">'; 
$xml .= '<RequesterCredentials>'; 
$xml .= '<eBayAuthToken>my token</eBayAuthToken>'; 
$xml .= '</RequesterCredentials>'; 
$xml .= '<ExternalPictureURL>http://www.website.com/randompicture.jpg</ExternalPictureURL>'; 
$xml .= '<PictureName>My Picture Name</PictureName>'; 
$xml .= '</UploadSiteHostedPicturesRequest>'; 

$headers = array(
    'X-EBAY-API-COMPATIBILITY-LEVEL: 929', 
    'X-EBAY-API-CALL-NAME : UploadSiteHostedPictures', 
    'X-EBAY-API-DEV-NAME:hidden', 
    'X-EBAY-API-APP-NAME:hidden', 
    'X-EBAY-API-CERT-NAME:hidden', 
    'X-EBAY-API-SITEID: 0', 
    'Content-Type: text/xml;charset=utf-8' 
); 

$session = curl_init('https://api.ebay.com/ws/api.dll'); 
curl_setopt($session, CURLOPT_POST, true); 
curl_setopt($session, CURLOPT_HTTPHEADER, $headers); 
curl_setopt($session, CURLOPT_POSTFIELDS, $xml); 
curl_setopt($session, CURLOPT_RETURNTRANSFER, true); 

$responsexml = curl_exec($session); 
curl_close($session);   
$response = new SimpleXMLElement($responsexml); 
var_dump($response); 

我已經運行與API測試工具相同的請求,它工作正常,沒有錯誤 - https://developer.ebay.com/DevZone/build-test/test-tool/default.aspx

任何幫助,將不勝感激。

回答

1

簡單的錯誤。標題在鍵和值之間不能有空格。

$headers = array(
    'X-EBAY-API-COMPATIBILITY-LEVEL:929', 
    'X-EBAY-API-CALL-NAME:UploadSiteHostedPictures', 
    'X-EBAY-API-DEV-NAME:hidden', 
    'X-EBAY-API-APP-NAME:hidden', 
    'X-EBAY-API-CERT-NAME:hidden', 
    'X-EBAY-API-SITEID:0', 
    'Content-Type:text/xml;charset=utf-8' 
);