我的目标是以编程方式获取易趣类别列表。
GetCategories方法似乎只能从Trading API获得。如果我理解正确,登录Trading API需要用户交互: http://developer.ebay.com/DevZone/XML/docs/HowTo/Tokens/GettingTokens.html
是否有另一种以编程方式获取易趣类别列表的方法?
我正在使用Drupal 7,所以PHP。
答案 0 :(得分:12)
您不需要令牌来获取类别。您只需要您的App-ID
以下链接与您的APP-ID将返回网站的XML类别列表:UK(siteid = 3) 设置CategoryID = -1会在根级别启动列表,您可以从任何类别开始, 只需使用IncludeSelector = ChildCategories来获取孩子
现在只需使用SimpleXML或其他任何解析。
答案 1 :(得分:7)
当时这可能是正确的,但是现在API中的此调用仅返回一级类别,而不是整个层次结构。要在整个网站上执行此操作,在一个请求中(可能会变得非常大),您需要使用带有效Ebay令牌的 GetCategories 调用,并指定<DetailLevel>ReturnAll</DetailLevel>
和{{1} }。
另请注意,您需要定期更新这些内容,并在Ebay过期时提供映射算法,并将类别重新映射到新名称/ ID。
答案 2 :(得分:0)
您可以使用以下网址获取顶级类别列表。获得类别列表后,您可以检查 [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;
}