6.5

API pro přístup k obsahu a znalostem

InTouch CRM má k dispozici další dvě rozhraní pro přístup k obsahu v systému.

/public/...

a

/known/...

První rozhraní vám umožní získat obsah dokumentů, které jsou v CRM umístěné v záložce Marketing | Správce obsahu. Druhé je určeno k přístupu ke znalostem. Jelikož Správce obsahu je nástroj pro vytváření veřejných dokumentů, jsou texty zde umístěné automaticky přístupné přes /public/... API. Trochu jinak je to u znalostí, kde mohou být interní dokumenty, u kterých není žádoucí, aby byly dostupné z internetu. Proto je nutné, aby záznam znalosti měl příznak Veřejná (nastavuje se v editaci znalosti).

Použití

Předpokládejme, že váš InTouch CRM je dostupný na adrese https://firma.itcrm.cz a vy chcete přes API získat obsah s adresou newsletter/2019/meetup. V takovém případě provedete HTTP dotaz na:

https://firma.itcrm.cz/public/newsletter/2019/meetup

Rozhraní podporuje několik parametrů, kterými můžete ovlivnit, co přijde v odpovědi. Standardní chování rozhraní je takové, že získáte v odezvě tělo požadovaného obsahu a pokud požadovaný obsah měl titulek a perex (stručný popis), server pošle HTTP hlavičky X-Title resp. X-Perex, které budou titulek a perex obsahovat (URL kódování znáků, které nejsou v US-ASCII).

Je-li požadovaný obsah typu HTML, může vám server vrátit titulek a/nebo perex dokumentu přímo v těle odpovědi, jako součást HTML. K tomu použijte parametr title a perex, jejichž hodnotou bude název HTML tagu, do kterého má server data zabalit. Syntaxe je:

tag[.class1][.class2]...

Na požadavek s parametrem title=h1.shock server pošle na začátku vráceného HTML

<h1 class="shock">Titulek, který je v CRM</h1>

Pokud si titulek nebo perex vyžádáte začleněný do těla HTML, HTTP hlavičky X-Title a X-Perex nebudou součástí odpovědi.

Relativní odkazy

Pokud vrácený dokument obsahuje odkazy na obrázky nebo jiné dokumenty z CRM, jsou tyto odkazy vráceny v absolutní podobě (včetně htts:\\...). Pokud chcete, aby CRM vrátilo relativní odkazy vůči dokumentu, ke kterému přistupujete, musíte použít parametr rel=1 v požadavku na API.

JSON

Další parametr, který rozhraní rozpoznává je json=1. Server v tomto případě vrátí validní JSON dokument s obsahem:

{
	"title": "...titulek...",
	"perex": "...stručný popis...",
	"contentType": "text/html", /* MIME type dat */
	"bodyType": "text|base64", /* base64 se používá pro kódování pole body, pokud se jedná o binární data */
	"body": "..." /* buď přímo text nebo base64 kódovaná binární data */
}

Parametr json neumožňuje vkládání titulku a perexu do těla HTML (viz. výše). Jsou vráceny vždy samostatně v JSON odpovědi.

Výpis položek

Výše popsané API je určené ke stažení jedné konkrétní položky (obsahu nebo znalostí). Pokud potřebujete vypsat dostupné záznamy, lze použít volání:

/public/list
/known/list

Obě volání můžete doplnit o následující parametry:

ParametrPopis
orderPodle jakého údaje seřadit výsledky
descJe směr řazení "sestupný"? desc=true je výchozí hodnota.
limitMaximální počet záznamů, které API vrátí (výchozí hodnota 10).
offsetOd kterého záznamu budou data vráceny (výchozí hodnota 0). Lze použít pro stránkování.
catPro /public volání je možné v tomto parametru uvést čárkou oddělený seznam kategorií. Kategorie obsahu se jmenují c1..c64 a definuje je administrátor v nastavení CRM. Např. volání /public/list?cat=c3,c6 vrátí záznamy, které jsou v kategorii c3 nebo c6.

Volání /known/list vrací pouze záznamy, které jsou označeny jako Veřejné. Interní znalosti nelze tímto API získat.

Server vrátí přehled záznamů v JSON formátu:

{
	"total": 38,	 /* Celkový počet záznamů v databázi */
	"limit": 10,  /* Omezení počtu vrácených záznamů */
	"offset": 0,  /* Od kterého záznamu jsou položky vráceny */
	"items": [ ]	/* Pole vrácených položek */
}

Každá položka v poli items má následující strukturu:

{
	"title": "Nové kávové automaty",		/* Titulek dokumentu */
	"perex": "V lednu jsme opět naskladnili autom...",	/* Stručný popis */
	"uid": "315",			/* Interní kód záznamu v CRM */
	"contentType": "text/html",	/* MIME typ obsahu */
	"url": "https://crm.dobrynapoj.cz/public/nove-automaty.html", /* Link na celý dokument */
	"path": "/nove-automaty.html",	/* Absolutní cesta k dokumentu v rámci CRM */
	"modified": "2020-07-13T20:33:11"	/* Datum a čas poslední změny dokumentu */
}