如何根据商品 ID 获取 eBay 商品 URL
How to get eBay item URL based on item ID
我想根据项目 ID 获取项目 URL。经过搜索,我发现我可以使用GetSingleItem
来达到我的目的。但是,我收到一个错误:
eBay returned the following error(s):
2 : Unsupported API call.
The API call "GetSingleItem" is invalid or not supported in this release.
这是我的代码(所有配置都是正确的,因为我可以通过使用这些配置来使用 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(">", ">", str_replace("<", "<", $shortMsg->item(0)->nodeValue));
//if there is a long message (ie ErrorLevel=1), display it
if (count($longMsg) > 0)
echo '<BR>', str_replace(">", ">", str_replace("<", "<", $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);
}
}
有什么建议吗?谢谢。
我没有使用 api 就得到了答案。答案如下:在我获得商品 ID 后,我可以使用 "http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=".$item_id
在 ebay 上展示我的产品。
我使用 GetOrders API 找到了这个 uri。
OrderArray.Order .TransactionArray.Transaction .Variation .VariationViewItemURL
Tip: "not optimized for natural search"
如果有人对 "GetSingleItem" 有任何想法,我愿意知道为什么我的代码不起作用。
正如您所发现的,您不需要 API 来构建一个简单的 eBay 查看商品着陆页 URL。
您发现的 URL 格式有效,但它太老了,可能无法完全支持或支持更长时间。
这是一个简单的 URL 格式,您可以使用它:
我想根据项目 ID 获取项目 URL。经过搜索,我发现我可以使用GetSingleItem
来达到我的目的。但是,我收到一个错误:
eBay returned the following error(s): 2 : Unsupported API call. The API call "GetSingleItem" is invalid or not supported in this release.
这是我的代码(所有配置都是正确的,因为我可以通过使用这些配置来使用 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(">", ">", str_replace("<", "<", $shortMsg->item(0)->nodeValue));
//if there is a long message (ie ErrorLevel=1), display it
if (count($longMsg) > 0)
echo '<BR>', str_replace(">", ">", str_replace("<", "<", $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);
}
}
有什么建议吗?谢谢。
我没有使用 api 就得到了答案。答案如下:在我获得商品 ID 后,我可以使用 "http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=".$item_id
在 ebay 上展示我的产品。
我使用 GetOrders API 找到了这个 uri。
OrderArray.Order .TransactionArray.Transaction .Variation .VariationViewItemURL
Tip: "not optimized for natural search"
如果有人对 "GetSingleItem" 有任何想法,我愿意知道为什么我的代码不起作用。
正如您所发现的,您不需要 API 来构建一个简单的 eBay 查看商品着陆页 URL。
您发现的 URL 格式有效,但它太老了,可能无法完全支持或支持更长时间。
这是一个简单的 URL 格式,您可以使用它: