Integrace a komunikace s Flexibee – 04. Integromat – HTTP request do Merk API a Data Store

Pokud v nabídce integrací nenachází připravený modul, ale aplikace nabízí propojení přes API, je možné integraci vytvořit. To se může hodit i v případě, kdy nabízený modul nefunguje podle představ nebo obsahuje chybu. Tento článek navazuje na předchozí Kontrola Merkem, kde se do modulu Merk sice načtou data o insolvenčním řízení, ale hodnoty nejsou dostupné (dotaz na podporu 21.02.2017).

Jak se připojit k Flexibee jsem psal v předchozích článcích. Pro testování je nejlepší si vytvořit trigger (spouštěč) a uložit do něj IČ.

Vytvoříme modul HTTP (základní, request). Volíme metodu GET a přidáme hlavičku s přihlašovacími údaji. Potřebné údaje jsou v dokumentaci API pro Merk.

Problémy mi dělala podoba, jak má být token uložen v hlavičce. Prvně jsem zadával čistě jen token (hash). Poté jsem v dokumentaci našel, jak má vypadat dotaz přes cURL.

curl -X GET -H ‘Authorization: Token {api_key}’ ‘https://api.merk.cz/company/?regno=14915’

Hlavičku jsem změnil na „Token {api_key}“ s hranatými závorkami. Našel jsem užitečný nástroj na odzkoušení cURL Onlinecurl. Chvíli to trvá, než se to načte. Nakonec jsem to správně zadal bez závorek „Token api_key“.

Výsledek dotazu z HTTP modulu není stejný jako z předpřipraveného. Chybí zde hodnoty z číselníku (pk company_turnover), ke kterým se dostává přes turnover_id. Ten udává, v jakém rozmezí se hodnoty obratu nacházely v daný rok.

Ukládání JSON kolekce do data store

Údaje z číselníku si můžeme stáhnout a uložit do Data store. Existuje více způsobů, tady je jeden z nich.

V HTTP module je vše stejné až na URL https://api.merk.cz:443/enums/company_turnover/.

V Parse JSON zpracujeme Data z requestu. Datovou strukturu necháme nevyplněnou. Parser JSON rozloží v obdržené struktuře i bez toho.

V agregátoru jako zdroj uvedeme JSON parser. A do agregovaných polí musíme ručně odškrtat všechny kolekce z JSON, které tam chceme.

Tady by bylo lepší, kdyby byly typu array, stejně mají stejnou strukturu.

Řádky do Data Store v Integromatu se ukládají po jednom, proto potřebujeme Repeater. Strukturu a údaje znám, proto jsem ho vyplnil nestandardně. A každý ten průchod myslím, že se započítává do placeného limitu. 10 000 průchodů vyjde na 180 CZK. To není moc, ale špatně zadaný Repeater se prodraží.

K Data Storu si připravíme strukturu. To lze snadno překopírováním vzorku z JSON do generátoru struktury. Tu získáme v dokumentaci z výsledku „Try it out“.

A pomocí funkce get, která funguje nejen na array, ale i collection, získáme a ukládáme data do uložiště. (K čemu ta funkce string u indexu?)

Získání dat z Data Store a uložení do tabulky

Vracíme se k původnímu scénáři.

Data z číselníku k historii tržeb získáváme ze 3 modulů. Pro složitější dotazy by byl lepší modul „Search record“ pro jednoduché stačí „Get a record“.

Google tabulka zůstává stejná jako v původním příkladu. Jen ukládáme hodnoty z číselníku z dotazu do uložiště.

První řádek je výsledek ze scénáře z předešlého příkladu. Druhý řádek je z tohoto příkladu.

[google-drive-embed url=”https://docs.google.com/spreadsheets/d/1pTa4aU59Ca-p4VvtmxWyBWG8ohwUBgasV6Kd_A9H9Es/preview?usp=drivesdk” title=”Flexibee Merk Gmail” icon=”https://drive-thirdparty.googleusercontent.com/16/type/application/vnd.google-apps.spreadsheet” width=”100%” height=”160″ style=”embed”]

Budu rád za každou konstruktivní poznámku či připomínku do komentářů pod příspěvkem nebo mě přímo kontaktujte

Facebook Comments

Napište komentář.

This site uses Akismet to reduce spam. Learn how your comment data is processed.