4

我的目标是以编程方式获取 eBay 类别列表。

GetCategories 方法似乎只能从 Trading API 获得。如果我理解正确,登录交易 API 需要用户交互:http: //developer.ebay.com/DevZone/XML/docs/HowTo/Tokens/GettingTokens.html

是否有另一种以编程方式获取 eBay 类别列表的方法?

我正在使用 Drupal 7,所以 PHP。

4

3 回答 3

12

您不需要令牌来获取类别。您只需要您的 App-ID

下面带有您的 APP-ID 的链接将返回来自站点的 XML 类别列表: UK (siteid=3) 设置 CategoryID=-1 从根级别启动列表,您可以从任何类别开始,只需使用 IncludeSelector=ChildCategories 获取孩子们

http://open.api.ebay.com/Shopping?callname=GetCategoryInfo&appid=YOUR-APP-ID&siteid=3&CategoryID=-1&version=729&IncludeSelector=ChildCategories

现在只需使用 SimpleXML 或其他任何东西来解析。

于 2011-11-16T10:52:37.157 回答
7

这在当时可能是正确的,但是 API 中的这个调用现在只返回一个级别的类别,而不是整个层次结构。要为整个站点执行此操作,在一个请求(可能会变得非常大)中,您需要使用带有有效 Ebay 令牌的GetCategories<DetailLevel>ReturnAll</DetailLevel>调用,并指定and <ViewAllNodes>true</ViewAllNodes>

另请注意,您将需要定期更新这些并提供映射算法,因为 Ebay 过期并随着时间的推移将类别重新映射到新的名称/ID。

于 2013-02-26T21:27:01.120 回答
0

您可以使用以下 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; }

于 2014-12-18T16:00:30.370 回答