使用GetSellerList获取所有列表

时间:2017-08-24 16:27:48

标签: php ebay-api

目前我正在使用eBay Trading API。 我想得到所有活跃的房源,但获得194。 我的卖家帐户中有2269个有效商家信息。 这是我的代码。

$curl_resource = $this->initialize_requests("GetSellerList", false);
        $xmlStr="<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<GetSellerListRequest xmlns=\"urn:ebay:apis:eBLBaseComponents\">
  <RequesterCredentials>
    <eBayAuthToken>".$this->userToken."</eBayAuthToken>
  </RequesterCredentials>
    <ErrorLanguage>en_US</ErrorLanguage>
    <WarningLevel>High</WarningLevel>
  <GranularityLevel>Coarse</GranularityLevel>
  <StartTimeFrom>2017-06-21T06:38:48.420Z</StartTimeFrom> 
  <StartTimeTo>2017-08-23T06:38:48.420Z</StartTimeTo> 
  <IncludeWatchCount>true</IncludeWatchCount> 
  <Pagination> 
    <EntriesPerPage>50</EntriesPerPage> 
  </Pagination>
</GetSellerListRequest>";
        $response = $this->getResponse($curl_resource, $xmlStr);
        $responseObject = simplexml_load_string($response);
        print_r($responseObject);

我想我应该在每次调用后更改<startTimeFrom><startTimeTo>,直到它返回null或其他内容。 或者有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

您需要在XML Feed中传递页码,因为eBay API每页只返回200个列表,因此您需要遍历API调用。

例如:

<?xml version="1.0" encoding="utf-8"?>
<GetMyeBaySellingRequest
    xmlns="urn:ebay:apis:eBLBaseComponents">
    <RequesterCredentials>
        <eBayAuthToken>$this->auth_token</eBayAuthToken>
    </RequesterCredentials>
    <ActiveList>
        <Sort>Title</Sort>
        <IncludeNotes>FALSE</IncludeNotes>
        <Pagination>
            <EntriesPerPage>200</EntriesPerPage>
            <PageNumber>$page_no</PageNumber>
        </Pagination>
    </ActiveList>
    <HideVariations>FALSE</HideVariations>
    <DetailLevel>ReturnSummary</DetailLevel>
    <MessageID>$messageID</MessageID>
    <Version>$this->api_version</Version>
    <WarningLevel>High</WarningLevel>
</GetMyeBaySellingRequest>​

答案 1 :(得分:1)

eBay在一次调用中返回200个条目作为响应,因此您需要通过在创建XML时传递分页索引中的PageNumber元素来遍历同一个调用。