Sauto - dokumentace k importnímu rozhraní
Transkript
Sauto - dokumentace k importnímu rozhraní Obsah 1 Úvod 1.1 Co je nového . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Typy dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Autorizace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Metody 2.1 Autorizační metody . . . . . . . 2.2 Metody pro práci s inzeráty . . . 2.3 Metody pro práci s fotografiemi 2.4 Metody pro práci s vybavou . . 2.5 Metody pro práci s videem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 2 3 4 . 4 . 6 . 13 . 16 . 18 3 Seznam všech statusů a hlášek 19 4 Příklady 20 4.1 PHP (PEAR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Sauto - importní XMLRPC rozhraní 1 Seznam.cz, a.s. Úvod Serverové rozhraní XML-RPC se nachází na adrese http://import.sauto.cz/RPC2 a slouží k importu vozidel na službu Sauto.cz. Veškerá komunikace se serverem a zpět probíhá v kódování UTF-8. Na adrese http://www.xmlrpc.com/spec se nalézá podrobná specifikace protokolu. Vytváříte-li nový exportní software, obrat’te se na infolinku Sauta ([email protected]), kde vám zapůjčí testovací účet. Přes tento účet lze pouze otestovat komunikaci s importním rozhraním. Inzeráty naimportované přes testovací účty se nedostanou do výdeje. 1.1 Co je nového Proti verzi 3.2.6: • Nové parametry inzerátu pro produktové inzeráty pro Sklik: client_url, custom_label, custom_label2, custom_label3, custom_label4. Proti verzi 3.2.5: • Do parametru iframe_url lze vložit šablonovatelnou část. Proti verzi 3.2.4: • Doplnění dokumentace funkce addEditCar(). Úpravy v povinných položkách. • Oprava kontroly parametrů ve funkci addEditCar() Proti verzi 3.2.3: • Oprava kontroly parametrů ve funkci addEditCar(). Rozšíření používání strukturovaných chyb (error_items) a varování (warning_items) • Přepracování českých chybových zpráv Proti verzi 3.2.2: • Automatická korekce karoserií na základě administrátorem definovaných pravidel. • Ve funkci addEditCar() přibyl fragment warning_items, který obsahuje varování. • Optimalizace nahrávání a mazání fotografií v rámci jednoho inzerátu. Proti verzi 3.2.1: • České chybové zprávy (do budoucna budeme ještě zlepšovat) Proti verzi 3.2.0: • Opravy v dokumentaci (atributy inzerátů, revize status kodu XML-RPC metod, atd.) • Oprava defaultních návratových hodnot u funkce getCar() - položky datového typu bool, int, codebook a float nejsou navráceny jako prázdný řetězec (""), ale jako prázdná hodnota pro daný typ(0 pro bool, int, codebook a 0.0 pro float). • Oprava ve funkci getCar() - pri chybe 406 (problém s nevalidním výrobcem, modely a karosérií) se vracel slovník. Nově chodí chybová zpráva • Ve funkci addEditCar() zlepšena konverze atributů datového typu date • České chybové zprávy (do budoucna budeme ještě zlepšovat) Strana 1/20 verze 3.2.7 platná od 22.8.2016 Sauto - importní XMLRPC rozhraní Seznam.cz, a.s. • Zrušení anglické verze dokumentace • Při reimportech inzerátů funkcí addEditCar() se shodnými atributy jaké jsou v databázi se nebude provádět jejich přeukládání do databáze. • Snížení životnosti session_id z 24 hodin na 8 hodiny • Zlepšení kontroly nahrávání příliš velkých souborů 1.2 Typy dat Typ int bool float string date Prázdná hodnota 0 0 0.0 "" "" codebook base64 0 N/A Strana 2/20 Popis celočíselný datový typ datový typ reprezentující 0 (false) nebo 1 (true) číslo s plovoucí řádovou čárkou řetězec tisknutelných znaků datum ve formátu ’rrrr-mm-dd’, ’rrrr-mm’ nebo ’rrrr’ (rrrr = rok, mm = měsíc, dd= den) odpovídá typu int, jen má pojmenované hodnoty base64 encoded data, například obrázek verze 3.2.7 platná od 22.8.2016 Sauto - importní XMLRPC rozhraní 1.3 Seznam.cz, a.s. Autorizace Pro přihlášení se nejprve musí zavolat metoda getHash(), která vygeneruje session_id a hash_key. Hodnota session_id se pak používá pro autorizaci všech importních metod, avšak před jejím použitím ji musíme aktivovat pomocí metody login() jež se předají parametry session_id, zahashované heslo a softwarový klíč. Hash hesla se vygeneruje následujícím výpočtem: MD5(MD5(’heslo’)+hash_key) Kde hash_key je získán z předchozího volání metody getHash(). Pokud metoda login() vrátí status 200, je session_id aktivní a lze ho používat pro autorizované metody. Pro přehlednost postup přihlášení: login = "login" passwd = "tajneheslo" swKey = "swklic" result = xmlRpcClient.getHash(self.login) sessionId = result["output"]["session_id"] hashKey = result["output"]["hash_key"] hash = md5(md5(passwd) + hashKey) xmlRpcClient.login(sessionId, hash, swKey) Poznámka: Platnost session_id vyprší po 8 hodinách nebo ji lze ihned zrušit zavoláním metody logout(). Strana 3/20 verze 3.2.7 platná od 22.8.2016 Sauto - importní XMLRPC rozhraní 2 Seznam.cz, a.s. Metody 2.1 Autorizační metody 2.1.1 struct getHash( string login ) Metoda slouží k získání atributů pro přihlášení. Po zavolání se správným loginem je vrácen status=200 a v návratové hodnotě output je session_id a hash_hey. Parametr session_id je použit jako první parametr u všech metod vyžadující autorizaci. Hashovací klíči hash_hey je použit pro přihlášení a tím i aktivaci získaného session_id. V kapitole Autorizace 1.3 najdete bližší informace k tomu jak funguje proces autorizace. Parametry: string login login klienta, který se chce přihlásit Návratová hodnota: struct { int status string status_message [struct output] { [string session_id] [string hash_key] [string error] } status (200=OK, 401=Neexistující klient, 452=Nevalidní parametry, 500=Interní chyba serveru) slovní popis statusu identifikace spojení hashovací klíč textový popis chyby. nemusí být vrácen vždy } 2.1.2 struct login( string session_id, string password, string software_key ) Metodě login se předávají parametry session_id (z metody getHash()), hashované heslo (viz. kapitola Autorizace 1.3) a softwarový klíč. Hashované heslo se vytvoří pomocí vzorce MD5(MD5(’heslo’)+hash_key), kde hash_key se rovněž získá z metody getHash(). Softwarový klíč software_key je přidělen administrátorem Sauta zvlášt’ pro každého klienta. Pokud je vrácen status 200, je session_id spojení autorizováno a lze provádět správu inzerátů. Parametry: string session_id string password string software_key id session získané z metody getHash() hashované heslo; MD5(MD5(’heslo’)+hash_key); hash_key se získá z getHash(); heslo je heslo klienta, který se chce přihlásit klíč přidělený klientovi administrátorem Sauta Návratová hodnota: struct { int status string status_message [struct output] { [string error] } status (200=OK, 402=Neexistující klient nebo špatné heslo, 403=Neplatný softwarový klíč, 404=Neplatné session_id, 452=Nevalidní parametry, 500=Interní chyba serveru) slovní popis statusu. textový popis chyby. nemusí být vrácen vždy } Strana 4/20 verze 3.2.7 platná od 22.8.2016 Sauto - importní XMLRPC rozhraní 2.1.3 Seznam.cz, a.s. struct logout( string session_id ) Metoda slouží k odhlášení. Po zavolání této metody a navrácení statusu 210 dojde k okamžitému zneplatnění session_id. Parametry: string session_id id session získané z metody getHash() Návratová hodnota: struct { int status string status_message [struct output] { [string error] } status (210=odhlášení je OK, 404=Neplatné session_id, 452=Nevalidní parametry, 500=Interní chyba serveru) slovní popis statusu textový popis chyby. nemusí být vrácen vždy } 2.1.4 struct version( ) Vrátí verzi xml-rpc serveru. Návratová hodnota: struct { int status string status_message struct output { string version } status (200=OK, 500=Interní chyba serveru) slovní popis statusu řetězec s číslem verze import. rozhraní } Strana 5/20 verze 3.2.7 platná od 22.8.2016 Sauto - importní XMLRPC rozhraní 2.2 Metody pro práci s inzeráty 2.2.1 Atributy inzerátu Seznam.cz, a.s. Při práci s inzeráty se používají následující atributy: Název atributu airbag aircondition Datový typ codebook codebook attractive_offer bool beds body_id capacity codebook codebook codebook car_id car_status certified_id int int int client_url string color color_tone color_type condition cr crashed custom_id custom_label custom_label2 custom_label3 custom_label4 district codebook codebook codebook codebook string bool string string string string string codebook disused_date dph door engine_power engine_volume environmental_tax euro string bool codebook int int bool codebook first_owner codebook fuel gas_mileage gearbox gearbox_level codebook float codebook codebook gearbox_auto_type codebook Strana 6/20 Popis počet airbagů (1="1x airbag", 2="2x airbagy", dále viz. číselník) klimatizace (1="bez klimatizace", 2="manuální klimatizace", dále viz. číselník) inzerát je v atraktivní nabídce (attractive_offer = 1). Pro zobrazení inzerátu v tomto produktu je nutno mít i aktivní objednávku pro tento produkt. počet lůžek (1="jedno lůžko", 2="dvě lůžka", dále viz. číselník) id karosérie (viz číselník) počet míst (1="jedno místo", 2="dvě místa", dále viz. číselník). Pro nastavení počtu sedadel u autobusů použijte atribut seatplace id inzerátu (vozidla) podle číslování Sauta inzerát je aktivní (car_status = 1) Ověření vozu. Jen pro klienty zapojených do programu Škoda Plus, Das WeltAuto atd. klientská URL inzerátu - produktové inzertáty pro Sklik (maximálně 1024 znaků) barva (1="bílá", 2="žlutá", dále viz. číselník) odstín barvy (1="světlá", 2="tmavá", dále viz. číselník) typ barvy (1="základní", 2="metalíza", dále viz. číselník) stav vozidla (1="nové", 2="ojeté", dále viz číselník) číslo (identifikátor) Cebia reportu (maximálně 40 znaků) havarováno (crashed = 1) id inzerátu (vozidla) podle číslování klienta uživatelský štítek - produktové inzeráty pro Sklik (max. 50 znaků) uživatelský štítek 2 - produktové inzeráty pro Sklik (max. 50 znaků) uživatelský štítek 3 - produktové inzeráty pro Sklik (max. 50 znaků) uživatelský štítek 4 - produktové inzeráty pro Sklik (max. 50 znaků) okres (viz. číselník). Podmínkou pro nastavení daného okresu je mít v dané okresu pobočku datum - mimo provoz od - formát "rrrr[-mm[-dd]]" určuje, zda je cena vozidla s DPH (dph=1) nebo bez DPH (dph=0) počet dveří (1="jedny dveře", 2="dvoje dveře", dále viz číselník) výkon motoru v kilowattech obsah motoru v ccm zaplacená ekologická daň (environmental_tax = 1) emisní norma (1="splňuje EURO 1", 2="splňuje EURO 2", dále viz. číselník) zda se jedná o prvního majitele vozidla (1="ano", 2="ne", dále viz. číselník) druh pohonných hmot (1="benzín", 2="nafta", dále viz číselník) průměrná spotřeba (l/100km) převodovka (1="manuální", 2="poloautomatická", dále viz. číselník) počet převodových stupňů (1="3 a méně stupnů", 2="4 stupňová", dále viz. číselník) druh automatické převodovky (1="automatická", 2="dvojspojková", dále viz. číselník) verze 3.2.7 platná od 22.8.2016 Sauto - importní XMLRPC rozhraní Název atributu guarantee_date handicapped iframe_url Datový typ string bool string iframe_height iframe_small_url kind_id load_capacity manufacturer_id made_date model_id motohodiny note payment payment_count perex price price_leasing price_notice priority_ordering int string codebook int codebook string codebook int string int int string int int string int run_date seatplace string codebook service_book sign_note state_id stk_date tachometr tachometr_unit codebook string codebook string int codebook total_views int tunning type_info url vat_deductable video_filename bool string string bool string vin weight string int Seznam.cz, a.s. Popis datum - záruka do - formát "rrrr[-mm[-dd]]" úprava pro zdravotně postižené (handicapped = 1) URL iframe (maximálně 250 znaků). Do url lze vložit šablonu např. ". . . &utm_source=##TYP##. . . ". Výraz ##TYP## bude nahrazen textem "doporucena-nabidka", "vypis" nebo "detail" podle typu stránky, odkud uživatel přišel na váš web. Výchozí hodnota parametru je text "(nic)". výška iframe v pixelech URL pro iframe pod fotkou id druhu vozidla (1="osobní", 3="motorky", dále viz. číselník) nosnost v kg id výrobce (viz. číselník) datum - výroby vozidla - formát "rrrr[-mm[-dd]]" id modelu (viz. číselník) motohodiny poznámka (maximálně 500 znaků) pokud je vůz na leasing, je tu výše splátky v Kč pokud je vozidlo na leasing, je tu počet splátek krátké informace k vozidlu (maximálně 30 znaků) cena vozidla. Pokud je vozidlo na leasing, je tu odstupné cena na leasing poznámka k ceně (maximálně 150 znaků) inzerát je v přednostním řazení (priority_ordering = 1). Pro zobrazení inzerátu v tomto produktu je nutno mít i aktivní objednávku pro tento produkt. datum - odkdy je vozidlo v provozu - formát "rrrr[-mm[-dd]]" počet sedadel (viz. číselník) - jen pro autobusy (kind_id=6). Pro ostatní kategorie použijte capacity zda má vozidlo servisní knížku (1="ano", 2="ne", dále viz. číselník) poznámka k ceduli za okno vozu (maximálně 100 znaků) id státu, ve kterém bylo vozidlo koupeno (viz. číselník) datum - konce STK - formát "rrrr[-mm[-dd]]" stav tachometru (počet najetých km, mil) jednotka, ve které se udává stav tachometru (1="km", 2="mil", dále viz číselník) Statistika zobrazení detailu. Attribute je jen pro čtení a jeho hodnota se generuje jednou denně (v noci). tunningová úprava (tunning = 1) doplňující informace o modelu (maximálně 30 znaků) URL pro vlastí kartu vozu (maximálně 150 znaků) určuje, zda je možný odpočet DPH (vat_deductable = 1) Název souboru nahraného videa. V metodě addEditCar() je pouze pro čtení. Lze nastavit jen v addVideo() vin kód (17 znaků) hmotnost v kg Poznámka: color, color_tone a color_type lze načíst i z proměnné color jež je možné poslat i jako řetězec a importní server se pokusí rozpoznat číselníkové hodnoty. Tato funkcionalita je již zastaralá a do budoucna se s ní nepočítá, proto pokud to jde tuto funkcionalitu doporučujeme nepoužívat a do budoucna předělat na číselníky Poznámka: Všechny atributy lze posílat jako řetězec a nechat konverzi na importním serveru Sauta. Tato funkcionalita se nemusí ve všech případech chovat podle předpokladů, proto doporučujeme posílat atributy datového typu jež je uveden v tabulce výše Všechny číselníky jsou uloženy na adrese https://www.sauto.cz/dokumentace-importu Strana 7/20 verze 3.2.7 platná od 22.8.2016 Sauto - importní XMLRPC rozhraní 2.2.2 Seznam.cz, a.s. struct addEditCar( string session_id, struct car_data ) Metoda pro vložení či editace inzerátu (vozidla). Pokud bude parametr car_id v struktuře car_data kladné (nenulové) celé číslo, tak se provede editace inzerátu car_id. V opačném případě dojde k v vložení nového inzerátu. Pokud vkládáme nový inzerát a nechceme nějakou položku vyplnit (tj. chceme jí nastavit hodnotu ’Neuvedeno’), tak ji bud’ do struktury car_data vůbec neuvedeme nebo jí přiřadíme defaultní hodnotu pro daný typ. Při editaci, když nechceme měnit určitou položku, tak ji jednoduše do struktury neuvedeme. V případě, že se jedná o nové vozidlo (condition = 1), tak parametry made_date a run_date nesmí udávat datum starší než 2 roky a parametr tachometr (počet najetých km/mil) nesmí být větší než 1000. Pokud se jedná o předváděcí vozidlo (condition = 4), tak parametr tachometr (počet najetých km/mil) nesmí být větší než 25000. Nejsou-li tyto podmínky splněny, atribut condition bude upraven na ojeté vozidlo (condition = 2). Pro některé datumy existují určitá omezení. Datum "Mimo provoz od" (disused_date) musí být datum v minulosti, STK (stk_date) může být maximálně 7 let v budoucnosti a datumy roku výroby (made_date) a "V provozu od" (run_date) mohou být maximálně rok v budoucnu. Pro všechny jmenované atributy platí, že by neměli být menší jak 1. 1. 1900 a větší jak 1. 1. 2100. Strana 8/20 verze 3.2.7 platná od 22.8.2016 Sauto - importní XMLRPC rozhraní Seznam.cz, a.s. V následující tabulce jsou uvedeny povinné položky ze struktury car_data. Název atributu body_id condition color dph engine_volume fuel kind_id manufacturer_id made_date model_id price state_id tachometr tachometr_unit vin Povinnost vždy povinný vždy povinný Povinný pro osobní (kind_id = 1), užitková (kind_id = 4), nákladní (kind_id = 5) a obytná (kind_id = 9) vozidla, autobusy (kind_id = 6) a přívěsy (kind_id = 7) Povinný pro všechny druhy vozů (kind_id) vyjma náhradních dílů (kind_id = 12) a pracovních strojů (kind_id = 10) Povinný pro osobní (kind_id = 1), užitková (kind_id = 4) a nákladní (kind_id = 5) vozidla, autobusy (kind_id = 6), motocykly (kind_id = 3) a čtyřkolky (kind_id = 11) Povinný pro osobní (kind_id = 1), užitková (kind_id = 4), nákladní (kind_id = 5) a obytná (kind_id = 9) vozidla a autobusy (kind_id = 6) vždy povinný vždy povinný Povinný pro všechny druhy vozů (kind_id) vyjma náhradních dílů (kind_id = 12) vždy povinný vždy povinný Povinný pro osobní (kind_id = 1), užitková (kind_id = 4), nákladní (kind_id = 5) a obytná (kind_id = 9) vozidla, autobusy (kind_id = 6) a přívěsy (kind_id = 7) Povinný pro osobní (kind_id = 1), užitková (kind_id = 4) a nákladní (kind_id = 5) vozidla a autobusy (kind_id = 6). Vyjímkou jsou nová vozidla (condition = 1). U nich tento parametr povinný není Povinný pro osobní (kind_id = 1), užitková (kind_id = 4) a nákladní (kind_id = 5) vozidla a autobusy (kind_id = 6). Vyjímkou jsou nová vozidla (condition = 1). U nich tento parametr povinný není Povinný pro všechny druhy vozů (kind_id) vyjma náhradních dílů (kind_id = 12). vin dále není povinný pro nové (condition = 1) vozy a veterány (condition = 5) Parametry: string session_id id session získané z metody getHash() struct car_data { data vkládaného inzerátu (jednotlivé položky a jejich hodnoty) int car_id id inzerátu (vozidla) podle číslování Sauta string custom_id id inzerátu (vozidla) podle číslování klienta codebook kind_id id druhu vozidla codebook manufacturer_id id výrobce codebook model_id id modelu codebook body_id id karosérie string vin vin kód (17 znaků) ... } Strana 9/20 verze 3.2.7 platná od 22.8.2016 Sauto - importní XMLRPC rozhraní Seznam.cz, a.s. Návratová hodnota: struct { int status string status_message [struct output] { [int car_id] status (200=OK, 404=Neplatné session_id, 405=Inzerát neexistuje, 406=Chyba v položkách (inzerátu), 408=Vyčerpán počet modulů, 452=Nevalidní parametry, 500=Interní chyba serveru) slovní popis statusu id právě vloženého (zeditovaného) inzerátu (podle číslování Sauta). textový popis chyb podrobný popis chyby. Struktura jejíž klíč je index pořadí. [string error] [array error_items] { "0": struct { string item název položky, ve které byla chyba string error_message slovní popis chyby, jaká v položce nastala string type typ chybové hlášky } "1": struct { ... } ... } [array warning_items] { podrobný popis varování. Struktura jejíž klíč je index pořadí. "0": struct { string item název položky, ve které bylo varování string warning_message slovní popis varování, které v položce nastalo string type typ varování } "1": struct { ... } ... } } } 2.2.3 struct getCar( string session_id, int car_id ) Vrátí informace z databáze pro dané auto. Pro zadané id auta vrátí všechny parametry, které bylo možné zadat pomocí metody addEditCar(). Parametry: string session_id int car_id číslo aktuální relace id auta, které se má vrátit Návratová hodnota: struct { int status string status_message [struct output] { int car_id string custom_id codebook kind_id codebook manufacturer_id codebook model_id codebook body_id int car_status string vin ... [string error] } status (200=OK, 404=Neplatné session_id, 405=Inzerát neexistuje, 452=Nevalidní parametry, 500=Interní chyba serveru) slovní popis statusu vracený záznam, struktura identická jako v metodě addEditCar id inzerátu (vozidla) podle číslování Sauta id inzerátu (vozidla) podle číslování klienta id druhu vozidla id výrobce id modelu id karosérie aktivní/neaktivní vin kód (17 znaků) textový popis chyby. nemusí být vrácen vždy } Strana 10/20 verze 3.2.7 platná od 22.8.2016 Sauto - importní XMLRPC rozhraní 2.2.4 Seznam.cz, a.s. struct getCarId( string session_id, string custom_id ) Na základě klientského Id inzerátu custom_id vrátí interní Id Sauta (car_id). Parametry: string session_id string custom_id id session získané z metody getHash() id inzerátu (vozidla) podle číslování klienta Návratová hodnota: struct { int status string status_message [struct output] { [int car_id] [string error] } status (200=OK, 404=Neplatné session_id, 405=Inzerát neexistuje, 452=Nevalidní parametry, 500=Interní chyba serveru) slovní popis statusu id inzerátu (vozidla) podle číslování Sauta textový popis chyby. nemusí být vrácen vždy } 2.2.5 struct delCar( string session_id, int car_id ) Podle zadaného car_id tato metoda označí daný inzerát jako smazaný. Parametry: string session_id int car_id id session získané z metody getHash() id inzerátu (vozidla) podle číslování Sauta Návratová hodnota: struct { int status string status_message [struct output] { [string error] } status (200=OK, 404=Neplatné session_id, 405=Inzerát neexistuje, 452=Nevalidní parametry, 500=Interní chyba serveru) slovní popis statusu textový popis chyby. nemusí být vrácen vždy } Strana 11/20 verze 3.2.7 platná od 22.8.2016 Sauto - importní XMLRPC rozhraní 2.2.6 Seznam.cz, a.s. struct listOfCars( string session_id, string imported ) Tato metoda vypíše seznam nesmazaných inzerátů, které má klient na Sauto.cz nahrané. Defaultně vrátí jen inzeráty, které byly založeny přes import. Pokud je třeba vrátit i inzeráty vložené z administračního rozhraní Sauta, je nutné explicitně nastavit parametr imported. Parametry: string session_id string imported id session získané z metody getHash() nepovinný parametr. Pro výpis všech inzerátů, včetně těch zadaných ručně z adminu, je potřeba poslat hodnotu ’all’ Návratová hodnota: struct { int status string status_message [struct output] { [array list_of_cars] { "0": struct { int car_id string custom_id int car_status int kind_id int manufacturer_id int model_id } "1": struct { ... } ... } [string error] } status (200=OK, 404=Neplatné session_id, 452=Nevalidní parametry, 500=Interní chyba serveru) slovní popis statusu inzeráty (struktura jejíž klíč je index pořadí) záznam jednoho inzerátu (vozidla) id inz. (vozidla) podle číslování Sauta id inz. (vozidla) podle číslování klienta stav inzerátu (aktivní/neaktivní) id druhu vozidla id výrobce vozidla id modelu vozidla textový popis chyby. nemusí být vrácen vždy } Strana 12/20 verze 3.2.7 platná od 22.8.2016 Sauto - importní XMLRPC rozhraní Seznam.cz, a.s. 2.3 Metody pro práci s fotografiemi 2.3.1 struct addEditPhoto( string session_id, int car_id, struct photo_data ) Tato metoda přidá k inzerátu fotografii nebo upraví některé její vlastnosti. Při editaci nelze upravit obrázek, ale jen atributy jako je popisek atd. Pokud bude photo_id ve struktuře photo_data kladné (nenulové) celé číslo, tak se provede editace této fotografie. V opačném případě dojde k založení nové fotografie. K inzerátu je možno nahrát maximálně 50 fotografií jejichž minimální velikost fotografie 1024x768 pixelů (je nutné respektovat poměr stran - maximální možná odchylka je 1024x550). Velikost nahrávané fotografie nesmí být větší než 5MB a musí být encodovaná v base64 (RFC 4648, Wikipedia). Pro bezproblémové nahrátí fotografií doporučujeme před odesláním zmenšení jejich velikosti za pomoci úpravy počtu pixelů a snížením kvality komprese (na serveru Sauto.cz se aktuálně používá formát JPG fotografie s kvalitou 80 procent). Pokud vkládáme novou fotografii a nechceme nějakou položku vyplnit, tak ji bud’ do struktury photo_data vůbec neuvedeme nebo jí přiřadíme defaultní hodnotu. Pokud editujeme fotografii a nechceme nějaký atribut měnit, tak ho neuvedeme. Položka b64 je povinná položka pro vkládání, ovšem při editaci je ignorovaná. Pořadí lze nastavit dvěma způsoby. Prvním je nastavení hlavní fotografie na main = 1 a u ostatních main = 0. Tento způsob neřeší pořadí fotek označených jako nehlavní (main = 0). Druhým způsobem je nastavit pořadí u všech fotografií. První fotografie lze se označí main = 1, druhá jako main = 2, třetí jako main = 3 atd. Tímto způsobem lze řídit přesné pořadí fotografií. Pokud pořadí nebude určeno vůbec, tak se fotografie řídí podle toho v jakém pořadí byly fotografie nahrány. Nelze mít více hlavních fotografií (main = 1). Pokud již existuje hlavní fotografie a je nahrána nová s označením jako hlavní je původní hlavní fotografie označena jako nehlavní (main = 0). Pokud má atribut main hodnotu -1, jedná se o reklamní fotku, kterou sice nenaimportujeme, ale vrátíme status ok. Parametry: string session_id id session získané z metody getHash() int car_id id inzerátu (vozidla) podle číslování Sauta struct photo_data { data vkládané fotografie (jednotlivé položky a jejich hodnoty) int photo_id id fotografie podle číslování Sauta int main uvádí, zda se jedná o hlavní fotku 1, 2-50 určuje pořadí string alt popisek k fotce string client_photo_id id fotografie podle číslování klienta base64 b64 fotografie ve formátu JPEG, zakódovaná pomocí base64 } Návratová hodnota: struct { int status string status_message [struct output] { [int photo_id] [string error] [array error_items] { "0": struct { string item string error_message } "1": struct { ... } ... } status (200=OK, 404=Neplatné session_id, 405=Inzerát (se zadaným car_id) neexistuje, 406=Chyba v položkách (fotografie)) 409=Editovaná fotografie neexistuje, 412=Fotka je chybných rozměrů 452=Nevalidní parametry, 476=Chybný formát fotografie, 500=Interní chyba serveru) slovní popis statusu id právě vložené (zeditované) fotografie. číslování podle Sauta textový popis chyby. nemusí být vrácen vždy struktura jejíž klíč je index pořadí chybová položka název položky, ve které byla chyba slovní popis chyby, jaká v položce nastala } } Strana 13/20 verze 3.2.7 platná od 22.8.2016 Sauto - importní XMLRPC rozhraní 2.3.2 Seznam.cz, a.s. struct delPhoto( string session_id, int photo_id ) Smaže fografii podle zadaného photo_id. Identifikátor photo_id je jedinečné nejen v rámci jednoho inzerátu (vozidla), ale v rámci celého serveru Sauta, proto pro smazání fotografie není potřeba car_id. Parametry: string session_id int photo_id id session získané z metody getHash() id fotografie podle číslování Sauta Návratová hodnota: struct { int status string status_message [struct output] { [string error] } status (200=OK, 404=Neplatné session_id, 409=Fotografie (se zadaným photo_id) neexistuje, 452=Nevalidní parametry, 500=Interní chyba serveru) slovní popis statusu textový popis chyby. nemusí být vrácen vždy } 2.3.3 struct getPhotoId( string session_id, int car_id, string client_photo_id ) Podle zadaného client_photo_id (id fotografie podle klienta) a car_id vrátí id fotografie podle číslování serveru Sauta. client_photo_id je jedinečné v rámci jednoho inzerátu (vozidla). Parametry: string session_id int car_id string client_photo_id id session získané z metody getHash() id inzerátu (vozidla) podle číslování Sauta id fotografie podle číslování klienta Návratová hodnota: struct { int status string status_message [struct output] { [int photo_id] [string error] } status (200=OK, 404=Neplatné session_id, 405=Inzerát neexistuje, 409=Fotografie (se zadaným client_photo_id) neexistuje, 452=Nevalidní parametry, 500=Interní chyba serveru) slovní popis statusu id fotografie podle číslování Sauta textový popis chyby. nemusí být vrácen vždy } Strana 14/20 verze 3.2.7 platná od 22.8.2016 Sauto - importní XMLRPC rozhraní 2.3.4 Seznam.cz, a.s. struct listOfPhotos( string session_id, int car_id ) Vrátí seznam všech fotografií daného inzerátu. Pokud parametr car_id není uveden nebo má defaultní hodnotu(0), tak vrátí seznam všech fotografií od všech inzerátů daného klienta. Parametry: string session_id int car_id id session získané z metody getHash() nepovinný parametr id inzerátu (vozidla) podle číslování Sauta Návratová hodnota: struct { int status string status_message [struct output] { [array list_of_photos] { "0": struct { int photo_id string alt int main string client_photo_id string filename status (200=OK, 404=Neplatné session_id, 405=Inzerát neexistuje, 452=Nevalidní parametry, 500=Interní chyba serveru) slovní popis statusu pole fotografií (struktura jejíž klíč je index pořadí) id fotografie podle číslování Sauta popisek fotografie (1=fotografie je hlavní, jiná čísla pořadí fotografií) id fotografie podle číslování klienta Cesta k souboru na serveru. Když se k této cestě připojí koncovka .jpg, dostaneme cestu k velkému obrázku, když se připojí _pre.jpg, dostaneme cestu k náhledovému obrázku, a když se připojí _middle.jpg, dostaneme cestu k obrázku střední velikosti. } "1": struct { ... } ... } [string error] textový popis chyby. nemusí být vrácen vždy } } Strana 15/20 verze 3.2.7 platná od 22.8.2016 Sauto - importní XMLRPC rozhraní Seznam.cz, a.s. 2.4 Metody pro práci s vybavou 2.4.1 struct addEquipment( string session_id, int car_id, array int equipment ) Tato metoda nejprve smaže všechnu výbavu u zadaného vozidla a potom mu nastaví výbavu uvedenou v poli equipment. Pokud chceme výbavu u vozidla jen smazat pošleme equipment jako prázdné pole. Výbava bude uložena i v případě, že ne všechny položky pole eqipment budou správně nastaveny podle číselníků. Veškerou výbavu je možné najít v číselníku https://www.sauto.cz/import/equipmentList. V číselníku https://www.sauto.cz/import/carList je uvedeno, které položky výbavy patří k jednotlivým druhům vozidel (kind_id). Parametry: string session_id int car_id array int eqipment ( int equipment_id int equipment_id ... ) id session získané z metody getHash() id inzerátu (vozidla) podle číslování Sauta pole s id položek výbavy id položky výbavy id položky výbavy Návratová hodnota: struct { int status string status_message [struct output] { [string error] [array error_equipment] { "0": struct { int equipment_id int error string error_message } "1": struct { ... } ... status (200=OK, 404=Neplatné session_id, 405=Inzerát neexistuje, 410=Chyba v položkách výbavy, 452=Nevalidní parametry, 500=Interní chyba serveru) slovní popis statusu textový popis chyby. nemusí být vrácen vždy podrobný popis chyby (struktura jejíž klíč je index pořadí) id položky vybavení, ve které byla chyba kód chyby ( 1=Duplicitní položka, 2=Položka s tímto ID neexistuje, 3=Položka pro zadaný druh neexistuje,) slovní popis chyby jaká v položce vybavení nastala } } } Strana 16/20 verze 3.2.7 platná od 22.8.2016 Sauto - importní XMLRPC rozhraní 2.4.2 Seznam.cz, a.s. struct listOfEquipment( string session_id, int car_id ) Metoda pro inzerát zadaný pomocí car_id vrátí všechny položky jeho výbavy. Parametry: string session_id int car_id id session získané z metody getHash() id inzerátu (vozidla) podle číslování Sauta Návratová hodnota: struct { int status string status_message [struct output] { [string error] [array equipment] { "0": int equipment_id "1": int equipment_id ... } } status (200=OK, 404=Neplatné session_id, 405=Inzerát neexistuje, 452=Nevalidní parametry, 500=Interní chyba serveru) slovní popis statusu textový popis chyby. nemusí být vrácen vždy pole s id položek výbavy id položky výbavy id položky výbavy } Strana 17/20 verze 3.2.7 platná od 22.8.2016 Sauto - importní XMLRPC rozhraní Seznam.cz, a.s. 2.5 Metody pro práci s videem 2.5.1 struct addVideo( string session_id, int car_id, struct video_data ) Metoda pro přidání videa k inzerátu. Lze vložit pouze jedno video jehož maximální velikost nesmí přesáhnou velikost 150 MB. Video je rovněž jako fotografie encodované v base64. Parametry: string session_id int car_id struct video_data { string filename base64 b64 } id session získané z metody getHash() id inzerátu (vozidla) podle číslování Sauta data vkládaného videa název videa včetně koncovky (např. auto2.avi) video zakódované pomocí base64 Návratová hodnota: struct { int status status ( 200=OK, 404=Neplatné session_id, 405=Inzerát (se zadaným car_id) neexistuje, 413=Video u inzerátu již existuje, 414=Video se zpracovává, 452=Nevalidní parametry, 500=Interní chyba serveru) slovní popis statusu string status_message [struct output] { [int car_id] id inzerátu, ke kterému bylo přidáno video [string error] textový popis chyby. nemusí být vrácen vždy [array error_items] { podrobný popisem chyby (struktura jejíž klíč je index pořadí) "0": struct { string item název položky, ve které byla chyba string error_message slovní popis chyby, jaká v položce nastala } "1": struct { ... } ... } } } 2.5.2 struct delVideo( string session_id, int car_id ) Smaže video u inzerátu podle car_id. Parametry: string session_id int car_id id session získané z metody getHash() id inzerátu podle číslování Sauta Návratová hodnota: struct { int status string status_message [struct output] { [string error] } status (200=OK, 404=Neplatné session_id, 405=Inzerát (se zadaným car_id) neexistuje, 414=Video se zpracovává, 415=Video neexistuje, 452=Nevalidní parametry, 500=Interní chyba serveru) slovní popis statusu textový popis chyby. nemusí být vrácen vždy } Strana 18/20 verze 3.2.7 platná od 22.8.2016 Sauto - importní XMLRPC rozhraní 3 Seznam.cz, a.s. Seznam všech statusů a hlášek status 200 210 401 402 403 404 405 406 406 409 410 412 413 414 415 452 476 500 Strana 19/20 slovní popis statusu OK Odhlášení je OK Neexistující klient Neexistující klient nebo špatné heslo Neplatný klíč softwaru Neplatné session_id Inzerát neexistuje Chyba v položkách inzerátu (při práci s inzerátem) client_photo_id není unikátní (při práci s fotografiemi) Fotografie neexistuje Chyba v položkách výbavy Fotografie chybných rozměrů Video u inzerátu již existuje Video se zpracovává Video neexistuje Nevalidní parametry Chybný formát fotografie Chyba serveru verze 3.2.7 platná od 22.8.2016 Sauto - importní XMLRPC rozhraní 4 4.1 Seznam.cz, a.s. Příklady PHP (PEAR) <? /********** Přihlášení ***********/ // načtení třídy z PEARu require_once ’XML/RPC.php’; // připojení na server $client = new XML_RPC_Client(’’, ’’, ); // vytvoření dotazu - username klienta $params = array(new XML_RPC_Value(’uzivatelske_jmeno’, ’’)); $msg = new XML_RPC_Message(’getHash’, $params); // poslání dotazu na server $response = $client->send($msg); // načtení výsledku $getHash = XML_RPC_decode($response->value()); // je dotaz je OK ? if ($getHash[’status’] == 200){ // překopírování outputu do zvlášt’. proměnné $output = $getHash[’output’]; // vytvoření dotazu pro login a poslání na server $params = array(new XML_RPC_Value($output[’session_id’]), new XML_RPC_Value(md5(md5(’xxx’).$output[’hash_key’])), new XML_RPC_Value(’xxx’)); $msg = new XML_RPC_Message("login", $params); $response = $client->send($msg); // načtení výsledku $login = XML_RPC_decode($response->value()); // pokud je status 200, je to OK if ($login[’status’] == 200){ //jsme zalogováni, můžeme importovat . . . }else{ echo "Chyba [$login[status]]: $login[status_message]\n"; } }else{ echo "Chyba [$getHash[status]]: $getHash[status_message]\n"; } ?> Strana 20/20 verze 3.2.7 platná od 22.8.2016
Podobné dokumenty
cena - 10,- Kč číslo - 08
na příslušný obecní úřad, v případě územního plánu velkého územního celku (popř.
územní prognózy) na příslušný krajský úřad.
Jaké doklady a informace musíte mít s sebou?
Chce-li občan uplatnit námi...
Sreality - dokumentace k importnímu rozhraní
lze zadat ještě atribut locality_inaccuracy_level, který říká jak moc je dobré znepřesnit adresu pro zobrazení na mapě. Tento
parametr má 3 možné hodnoty:
1. adresa je zobrazena přesně dle za...
Funkční klávesy ABRA 2
ani byste je museli opakovan zadávat. Budou se zde
zobrazovat jen ty podmínky, které jsou v dané definici
zatr eny, tedy podle kterých se má vyhledávat. K
následnému p epnutí zobrazení na v echny p...
Příručka administrátora ekonomického systému - G
programů. Money S3 není v tomto směru výjimkou. Zavedení nových technologií v ovládání síťových
klíčů zvyšuje nároky na správnou instalaci a nastavení softwarových (SW, dříve HW) klíčů obzvláště na...
interface 1/2015 - Centrum pro transfer technologií
dokumentem a pamětí. Jinými slovy, čím větší
část segmentů nového dokumentu je pokryta
- Katedra technické a informační výchovy PdF UP v
den, rok, hodinu, minutu a sekundu, kterou tato interní osmibajtová data reprezentují. Přesný formát
zobrazených nebo vytištěných údajů pro datum a čas je závislý na místních nastaveních operačního...
XML/RPC.php
$response = $this->client->send($msg);
// nacteni vysledku
if ($response->faultCode()) {
//!CALLERR!
$this->lastStatus = -1;
$this->lastStatusMessage = $response->faultString() ;
$this->lastOutput ...