Aukcje Zwierząt

Darmowy europejski system pośrednictwa handlu zwierzętami - Inflolinia Techniczna: 89 542 50 40

Witaj Gościu! Zaloguj się lub Zarejestruj.

API - Pobieranie Ogłoszeń
Krok 1: Przygotowujemy dokument XML lub formularz POST Na przykład (XML):
Aby ułatwić generowanie dokumenty XML z konkretnymi filtrami przygotowaliśmy generator, któy ułatwi państwu stworzenie odpowiedniego zapytania. Generator ten po uzyskaniu klucza API można znaleźć tutaj:

ZOBACZ GENERATOR ZAPYTAŃ

<?xml version="1.0" encoding="utf8"?>
<Document>
	<Zapytanie>
		<ApiKey></ApiKey>		
		<Kategoria></Kategoria>	
		<SubKategoria></SubKategoria>		
		<Sex></Sex>									
		<AdvertType></AdvertType>	
		<Country></Country>	
		<String></String>	
		<Rok></Rok>	
		<Miesiac></Miesiac>			
		<Dzien></Dzien>					
		<User>0</User>
		<FormatWyniku></FormatWyniku>	
		<Debug>0</Debug>	
		<Limit></Limit>	
		<Strona></Strona>	        						
	</Zapytanie>
</Document>


Krok 2: Wysyłamy dokument na adres:

// W przypadku zapytania poprzez XML
http://aukcjezwierzat.pl/api/getDataByXML.php?ApiKey=Twoj_klucz_api


// W przypadku zapytania poprzez POST
http://aukcjezwierzat.pl/api/getDataByPOST.php?ApiKey=Twoj_klucz_api

Metoda przesyłu informacji XML poprzez PHP/CURL

<?
function xml_post($post_xml, $url, $port)
{
$user_agent = $_SERVER['HTTP_USER_AGENT'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_FAILONERROR, 1); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
curl_setopt($ch, CURLOPT_PORT, $port); 
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_xml); /
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
if($port==443)
{
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
}
$data = curl_exec($ch);
curl_close($ch);
return $data;
}

$xml=file_get_contents("plik_xml_z_zapytaniem.xml");

$url ='http://aukcjezwierzat.pl/api/getDataByXML.php?ApiKey=twoj_klucz';
$port = 80;

// W zmiennej $response znajduje się wybrany format odpowiedzi. W zależności od wybranej 
// opcji będzie to dokument XML, sama jego struktura
// bądz forma serialized PHP

$response = xml_post($xml, $url, $port);
?>	

Krok 3: W odpowiedzi dla struktur XML zostanie wygenerowana odpowiedź

<Document>
<Dane>
	<LiczbaOgloszen>43</LiczbaOgloszen>
</Dane>
<Ogloszenia>
    <Advert>
        <Id>56</Id>
        <Tytul>fdsfsd</Tytul>
        <Opis>sfds</Opis>
        <Data>2008-10-10 14:22:54</Data>
        <ZdjecieMale>http://animalsmarket.com/img/offers/water/pig_water.gif</ZdjecieMale>
        <ZdjecieDuze>http://animalsmarket.com/img/offers/water/pig_water.gif</ZdjecieDuze>
        <AdresURL>http://aukcjezwierzat.pl/aukcja56_fdsfsd.html</AdresURL>
        <Kategoria>Świnie</Kategoria>
        <SubKategoria>Inne</SubKategoria>
        <Kraj>Wszystkie Kraje Swiata</Kraj>
        <Cena>0</Cena>
        <Waluta>Euro</Waluta>
        <TypAukcji>0</TypAukcji>
        <UzytkownikID>1</UzytkownikID>
    </Advert>
    <Advert>
        <Id>58</Id>
        <Tytul>fdsfsd</Tytul>
        <Opis>sfds</Opis>
        <Data>2008-10-10 14:22:54</Data>
        <ZdjecieMale>http://animalsmarket.com/img/offers/water/pig_water.gif</ZdjecieMale>
        <ZdjecieDuze>http://animalsmarket.com/img/offers/water/pig_water.gif</ZdjecieDuze>
        <AdresURL>http://aukcjezwierzat.pl/aukcja56_fdsfsd.html</AdresURL>
        <Kategoria>Świnie</Kategoria>
        <SubKategoria>Inne</SubKategoria>
        <Kraj>Wszystkie Kraje Swiata</Kraj>
        <Cena>0</Cena>
        <Waluta>Euro</Waluta>
        <TypAukcji>0</TypAukcji>
        <UzytkownikID>1</UzytkownikID>
    </Advert>    
</Ogloszenia>

Krok 3: W odpowiedzi dla Serialize PHP zostanie wygenerowana odpowiedź

a:1:{i:0;a:2:{i:0;a:14:{s:2:"Id";s:2:"56";s:5:"Tytul";s:6:"fdsfsd";s:4:"Opis";s:4:"sfds";s:4...

Krok 4: Zapisujemy odpowiedź w frmie pliku XML lub parsujemy go na bierząco
W poniższym przypadku przedstawiamy metodę parsowania pliku XML i zamiany go w tablicę. Operacje te korzystają z uniwersanych rozwiązań dla języków PHP4 i PHP5. Oczywiście w wypadku języka PHP5 można użyć metod SimpleXML

Przykładowa funkcja odczytująca dane XML pobrane za pomocą API

<?
// Wybierając opcję odpowiedzi strukturą bazy danych możemy na bierząco parsować dokument. 
// Oczywiście istnieje wiele metod pobierania i parsowania struktury danych, my 
// postaramy się przedstawić jedną z nich. Metoda właściwa dla wybranej opcji "Struktura XML"
       
$odpowiedz=$response;
	
$data= $odpowiedz;
$xml_parser = xml_parser_create();
xml_parse_into_struct($xml_parser, $data, $vals, $index);
xml_parser_free($xml_parser);

          $params = array();
          $level = array();
          $start_level = 1;
          foreach ($vals as $xml_elem) {
            if ($xml_elem['type'] == 'open') {
              if (array_key_exists('attributes',$xml_elem)) {
                list($level[$xml_elem['level']],$extra) = array_values($xml_elem['attributes']);
              } else {
                $level[$xml_elem['level']] = $xml_elem['tag'];
              }
            }
            if ($xml_elem['type'] == 'complete') {
              $php_stmt = '$params';
              while($start_level < $xml_elem['level']) {
                $php_stmt .= '[$level['.$start_level.']]';
                $start_level++;
              }
              $php_stmt .= '[$xml_elem[\'tag\']][] = $xml_elem[\'value\'];';
              eval($php_stmt);
              $start_level--;
            }
          }
 
// Odczyt strutury następuje poprzez następujące funkcje
			
for ( $i=0;$i<count($params['ADVERT']);$i++){  
          
          echo $params['ADVERT']['ID'][$i];
          echo $params['ADVERT']['TYTUL'][$i];
          echo $params['ADVERT']['OPIS'][$i];
          echo $params['ADVERT']['DATA'][$i];
          echo $params['ADVERT']['ZDJECIEMALE'][$i];
          echo $params['ADVERT']['ZDJECIEDUZE'][$i];
          echo $params['ADVERT']['ADRESURL'][$i];   
          echo $params['ADVERT']['KATEGORIA'][$i];   
          echo $params['ADVERT']['SUBKATEGORIA'][$i];   
          echo $params['ADVERT']['KRAJ'][$i];   
          echo $params['ADVERT']['CENA'][$i];   
          echo $params['ADVERT']['WALUTA'][$i];   
          echo $params['ADVERT']['TYPAUKCJI'][$i];   
          echo $params['ADVERT']['UZYTKOWNIKID'][$i];       
}       
 
?>	

Przykładowa funkcja odczytująca dane Serialized PHP pobrane za pomocą API

<?

$dane = $xml_response;
$dane=unserialize($dane);

print_r($dane);

for ($i=0;$i<count($dane[0]);$i++){

echo $dane[0][$i]["Id"];
echo $dane[0][$i]["Tytul"];
echo $dane[0][$i]["Opis"];
echo $dane[0][$i]["Data"];
echo $dane[0][$i]["ZdjecieMale"];
echo $dane[0][$i]["ZdjecieDuze"];
echo $dane[0][$i]["AdresURL"];
echo $dane[0][$i]["Kategoria"];
echo $dane[0][$i]["SubKategoria"];
echo $dane[0][$i]["Kraj"];
echo $dane[0][$i]["Cena"];
echo $dane[0][$i]["Waluta"];
echo $dane[0][$i]["TypAukcji"];
echo $dane[0][$i]["UzytkownikID"];

}

?>