abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 15:33 | Nová verze

    Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána v nové verzi 2025.8.

    Ladislav Hagara | Komentářů: 2
    dnes 14:22 | IT novinky

    Herní studio Hangar 13 vydalo novou Mafii. Mafia: Domovina je zasazena do krutého sicilského podsvětí na začátku 20. století. Na ProtonDB je zatím bez záznamu.

    Ladislav Hagara | Komentářů: 0
    dnes 13:22 | IT novinky

    Operátor O2 má opět problémy. Jako omluvu za pondělní zhoršenou dostupnost služeb dal všem zákazníkům poukaz v hodnotě 300 Kč na nákup telefonu nebo příslušenství.

    Ladislav Hagara | Komentářů: 5
    dnes 05:55 | IT novinky

    Společnost OpenAI představila GPT-5 (YouTube).

    Ladislav Hagara | Komentářů: 0
    dnes 05:00 | Nová verze

    Byla vydána (𝕏) červencová aktualizace aneb nová verze 1.103 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.103 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    včera 17:33 | IT novinky

    Americký prezident Donald Trump vyzval nového generálního ředitele firmy na výrobu čipů Intel, aby odstoupil. Prezident to zdůvodnil vazbami nového šéfa Lip-Bu Tana na čínské firmy.

    Ladislav Hagara | Komentářů: 8
    včera 16:55 | Nová verze

    Bylo vydáno Ubuntu 24.04.3 LTS, tj. třetí opravné vydání Ubuntu 24.04 LTS s kódovým názvem Noble Numbat. Přehled novinek a oprav na Discourse.

    Ladislav Hagara | Komentářů: 0
    včera 16:44 | Nová verze

    Byla vydána verze 1.89.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    včera 12:22 | IT novinky

    Americká technologická společnost Apple uskuteční v USA další investice ve výši sta miliard dolarů (2,1 bilionu korun). Oznámil to ve středu šéf firmy Tim Cook při setkání v Bílém domě s americkým prezidentem Donaldem Trumpem. Trump zároveň oznámil záměr zavést stoprocentní clo na polovodiče z dovozu.

    Ladislav Hagara | Komentářů: 4
    včera 04:55 | Nová verze

    Zálohovací server Proxmox Backup Server byl vydán v nové stabilní verzi 4.0. Založen je na Debianu 13 Trixie.

    Ladislav Hagara | Komentářů: 0
    Kolik tabů máte standardně otevřeno ve web prohlížeči?
     (45%)
     (21%)
     (4%)
     (6%)
     (3%)
     (1%)
     (1%)
     (19%)
    Celkem 303 hlasů
     Komentářů: 23, poslední 4.8. 13:01
    Rozcestník

    Google Books API: nepříjemnosti při implementaci a řešení

    12.8.2011 22:54 | Přečteno: 1223× | Ostatní | poslední úprava: 13.8.2011 01:09

    Pokud budete někdy chtít použít toto API, budete pravděpodobně, jako já, unešeni tím, jak je to jednoduché. Nicméně, jako vždy, není vše takové, jak se může zdát na první pohled. Dejte si ale pozor a čtěte pozorně dokumentaci!

    Kdo vydal knihu?

    První věc, se kterou se setkáte je, že místo vydavatele dostanete nějakou hloupost, nebo vůbec nic. “Tak Google nemá všechny informace”, řeknete si. Ale pokud se podíváte do webového rozhraní této služby, tak je tam vše v naprostém pořádku.

    Příklad č.1:
    http://books.google.com/books?id=TMkYAAAACAAJ
    Vydavatel: Computer Press
    https://www.googleapis.com/books/v1/volumes?q=isbn:9788025100233
    Vydavatel není vyplněn.

    Příklad č.2:
    http://books.google.com/books?id=MWllLAAACAAJ
    Vydavatel: Atom
    https://www.googleapis.com/books/v1/volumes?q=isbn:9781905654284
    Vydavatel: Gardners Books

    Příklad č.3:
    http://books.google.com/books?id=xZpJAAAACAAJ
    Vydavatel: Computer Press
    https://www.googleapis.com/books/v1/volumes?q=isbn:9788072268528
    Vydavatel: Dobré knihy cz

    Co s tím?

    Na tento bug (nebo feature?) je poměrně jednoduché řešení. Ve webovém rozhraní služby si můžete, pokud sescrollujete dolů, všimnout fráze “Export Citation” a tří tlačítek. Můžete si tak stáhnout bibliografické informace o zobrazené knize ve třech formátech. Skvělá věc na tom je ta, že v těchto souborech už je vydavatel uveden správně.

    Když získáváte info o knize pomocí GB API, dostanete také ve vráceném JSON poli (je to správná terminologie?) id knihy. A výše zmíněné soubory lze získat právě, pokud znáte toto id.

    Konkrétně to můžeme napsat v PHP třeba takto:

    
    $bookId = 'xZpJAAAACAAJ'; // do této proměnné doplníme ID získané z JSON dat získaných požadavkem na Google Books API
    $publisherName '';
    $workaroundData = file('http://books.google.com/books/download/?id='.$bookId.'&output=enw');
    foreach ($workaroundData as $line) {
    	if (substr($line, 0, 3) == '%I ') {
    		$publisherName = trim(substr($line, 3));
    		break;
    	}
    }
    

    Po položení dotazu dostaneme JSON pole, které obsahuje mimo jiné položku "selfLink", ve které je URL API dotazu na konkrétní svazek (volume).
    Pokud použijeme API dotaz pro získání konkrétního svazku, narozdíl od vyhledávacího dotazu dostaneme vydavatele již zcela správně.

    Odkud že jsi?

    Poněkud horší je už tato věc. Po nahrání aplikace na server jsem zjistil, že mi google hází chybu 503. Po chvíli zkoumání jsem přišel na to, že při GB API požadavku si google zjistí pomocí nějakého Geo IP nástroje odkud jste (poté k tomu poskytuje nějaké relevantní data související se zemí, odkud pocházíte). Což není nic zajímavého – tedy v případě, když Vás Google dokáže zařadit. Můžete se také dozvědět toto:

    {
     "error": {
      "errors": [
       {
        "domain": "global",
        "reason": "unknownLocation",
        "message": "Cannot determine user location."
       }
      ],
      "code": 503,
      "message": "Cannot determine user location."
     }
    }
    

    Jako první mne napadlo, že bude vina na straně poskytovatele. Nicméně jako odpověď na můj dotaz jsem dostal následující:
    “... my bohužel netušíme, jak Google tyto informace zjišťuje. My máme tyto informace korektně zaevidované v databázi RIPE. Víc pro to udělat nemůžeme.”

    Zkoušel jsem IP serveru (46.28.108.131) prohnat různými webovými nástroji s různými výsledky – někde našli a někde zase nenašli ... Google asi tedy používá nástroj, který spadá do druhé, jmenované skupiny.

    A s tímto problémem si už rady nevím. Teoreticky je možno vytvořit nějakou proxy, ale něco prakticky použitelného mne opravdu nenapadá. Šance, že Google s tím něco udělá (napsal jsem jim tam) je dle mého názoru mizivá.

    Napadá nějaké řešení Vás?

    Řešení tohoto "problému" lze nalézt na webu dokumentace Google Books API. Prakticky se jedná pouze o nastavení hlavičky X-Forwarded-For.

    Děkuji uživateli chrono, že mne navnadil, abych prošel znovu dokumentaci a našel tam řešení problému č.2 a nahodil elegantnější řešení problému č.1 :-)

           

    Hodnocení: 100 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    13.8.2011 00:04 chrono
    Rozbalit Rozbalit vše Re: Google Books API: nepříjemnosti při implementaci
    Nechce sa mi čítať dokumentácia k tomu API, ale podľa toho q v URL tipujem, že ide o hľadanie. Nájdené položky majú, teda aspoň tie z blogu, aj hodnotu selfLink a tam už je aj vydavateľ.
    saly avatar 13.8.2011 00:51 saly | skóre: 23 | blog: odi_et_amo
    Rozbalit Rozbalit vše Re: Google Books API: nepříjemnosti při implementaci
    Tak to mne nenapadlo. Je mi tedy ale stále záhadou, proč se nezobrazí korektní vydavatel i v hledání. Prolezl jsem teď znovu dokumentaci a nic. Nicméně děkuji mnohokrát!
    Luboš Doležel (Doli) avatar 13.8.2011 00:13 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: Google Books API: nepříjemnosti při implementaci
    Je fakt, že ta IP adresa je na ČR dost neobvyklá. Osobně bych 46.x.x.x tipnul na USA.
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.