2016-10-24 18 views
0

アイテムIDに基づいてアイテムのURLを取得したいと考えています。検索した後、私は "GetSingleItem"を使用して目標を達成できることを発見しました。しかし、私はエラーを得た:ここアイテムIDに基づいてeBayアイテムのURLを取得する方法

eBay returned the following error(s): 2 : Unsupported API call. The API call "GetSingleItem" is invalid or not supported in this release.

は私のコードは、(私はこれらのconfigsを使用して「GetOrders」を使用することができますので、すべての設定が正しい)です。

$subverb = "GetSingleItem"; 

$requestXmlBody = '<?xml version="1.0" encoding="utf-8" ?>'; 
$requestXmlBody .= '<GetSingleItemRequest xmlns="urn:ebay:apis:eBLBaseComponents">'; 
$requestXmlBody .= "<ItemID>111986554711</ItemID>"; 
$requestXmlBody .= '</GetSingleItemRequest>'; 

//Create a new eBay session with all details pulled in from included keys.php 
$session = new eBaySession($userToken, $devID, $appID, $certID, $serverUrl, $compatabilityLevel, $siteID, $subverb); 

//send the request and get response 
$responseXml = $session->sendHttpRequest($requestXmlBody); 
if (stristr($responseXml, 'HTTP 404') || $responseXml == '') 
    die('<P>Error sending request'); 

//Xml string is parsed and creates a DOM Document object 
$responseDoc = new DomDocument(); 
$responseDoc->loadXML($responseXml); 

//get any error nodes 
$errors = $responseDoc->getElementsByTagName('Errors'); 
$response = simplexml_import_dom($responseDoc); 
$entries = $response->PaginationResult->TotalNumberOfEntries; 

//if there are error nodes 
if ($errors->length > 0) { 
    echo '<P><B>eBay returned the following error(s):</B>'; 
    //display each error 
    //Get error code, ShortMesaage and LongMessage 
    $code = $errors->item(0)->getElementsByTagName('ErrorCode'); 
    $shortMsg = $errors->item(0)->getElementsByTagName('ShortMessage'); 
    $longMsg = $errors->item(0)->getElementsByTagName('LongMessage'); 

    //Display code and shortmessage 
    echo '<P>', $code->item(0)->nodeValue, ' : ', str_replace(">", "&gt;", str_replace("<", "&lt;", $shortMsg->item(0)->nodeValue)); 

    //if there is a long message (ie ErrorLevel=1), display it 
    if (count($longMsg) > 0) 
     echo '<BR>', str_replace(">", "&gt;", str_replace("<", "&lt;", $longMsg->item(0)->nodeValue)); 
    } else { //If there are no errors, continue 
     if (isset($_GET['debug'])) { 
     header("Content-type: text/xml"); 
     print_r($responseXml); 
     } else { 
     print("\n; 111986554711: " . $response->Item->ViewItemURLForNaturalSearch); 
     } 
    } 

任意の提案?ありがとうございました 。

答えて

1

あなたが発見したように、簡単なeBayビューアイテムのランディングページURLを作成するためにAPIは必要ありません。

検出されたURLの形式は正常ですが、古くて完全にサポートされていない可能性があります。

ここにあなたが使用できることはかなり電流であり、単純なURL形式です:

http://www.ebay.com/itm/122225724269

+0

すごい、それは簡単です。あなたはフィードバックのページを残すために指示する方法を知っていますか? – jmu

0

私はapiを使わずに答えを得ました。ここに答えがあります:アイテムIDを取得した後、私は"http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=".$item_idを使って自分の商品をeBayで見ることができます。

このURIはGetOrders APIを使用して見つかりました。

OrderArray.Order .TransactionArray.Transaction .Variation .VariationViewItemURL

Tip: "not optimized for natural search"

「GetSingleItem」についてご意見がありましたら、私のコードがうまくいかない理由を知りたいと思います。

関連する問題