我的目标是以编程方式获取 eBay 类别列表。
GetCategories 方法似乎只能从 Trading API 获得。如果我理解正确,登录交易 API 需要用户交互:http: //developer.ebay.com/DevZone/XML/docs/HowTo/Tokens/GettingTokens.html
是否有另一种以编程方式获取 eBay 类别列表的方法?
我正在使用 Drupal 7,所以 PHP。
我的目标是以编程方式获取 eBay 类别列表。
GetCategories 方法似乎只能从 Trading API 获得。如果我理解正确,登录交易 API 需要用户交互:http: //developer.ebay.com/DevZone/XML/docs/HowTo/Tokens/GettingTokens.html
是否有另一种以编程方式获取 eBay 类别列表的方法?
我正在使用 Drupal 7,所以 PHP。
您不需要令牌来获取类别。您只需要您的 App-ID
下面带有您的 APP-ID 的链接将返回来自站点的 XML 类别列表: UK (siteid=3) 设置 CategoryID=-1 从根级别启动列表,您可以从任何类别开始,只需使用 IncludeSelector=ChildCategories 获取孩子们
现在只需使用 SimpleXML 或其他任何东西来解析。
这在当时可能是正确的,但是 API 中的这个调用现在只返回一个级别的类别,而不是整个层次结构。要为整个站点执行此操作,在一个请求(可能会变得非常大)中,您需要使用带有有效 Ebay 令牌的GetCategories<DetailLevel>ReturnAll</DetailLevel>
调用,并指定and <ViewAllNodes>true</ViewAllNodes>
。
另请注意,您将需要定期更新这些并提供映射算法,因为 Ebay 过期并随着时间的推移将类别重新映射到新的名称/ID。
您可以使用以下 url 获取顶级类别列表。获得类别列表后,您可以检查[LeafCategory]是真还是假。如果类别为真,您可以通过指定categoryParentId再次获取子类别。您可以使用php Curl获取结果,然后您可以使用simple_xml_object获取返回的 xml 响应
$url= 'http://open.api.ebay.com/Shopping?callname=GetCategoryInfo&appid=YOUR-APP-ID&siteid=3&CategoryID=-1&version=729&IncludeSelector=ChildCategories';
$sXML = download_page($url);
$oXML = simplexml_load_string($sXML);
print_r($oXML);exit;
function download_page($path){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$path);
curl_setopt($ch, CURLOPT_FAILONERROR,1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
$retValue = curl_exec($ch);
curl_close($ch);
return $retValue;
}