Feedy a autentizační služba
Feedy zabezpečené autentizační službou umožňují automatizovanou synchronizaci mezi webem/e-shopem a aplikací MAILservis.
URL adresy feedů je možné nastavit v aplikaci MAILservis. Aby bylo zaručeno, že k datům ve feedech má přístup jen aplikace MAILservis, přistupuje k nim aplikace MAILservis pomocí jednorázového tokenu s časovou platností. Token je nutné ověřit pomocí autentizační služby.
Autentizační služba Mailservis
PHP Demo ověření tokenu: Stáhnout (*.zip, 4kB) -
Vzory naleznete také na konci této stránky.
Adresa pro ověření tokenu:
https://mailservis.cz/auth/verify.php?check=TOKEN
– za TOKEN dosadit token, se kterým zažádá MAILservis
Platnost tokenu je 300 vteřin, token se vytváří při odesílání požadavku
Návratové hodnoty – pole JSON
- err – chyba, 1(ano), 0(ne)
- info – popis chyby, empty, invalid, timeouted(id nalezeno ale platnost vypršela nebo bylo již použito), ok
- val – číslo klienta
tedy například v případě chyby:
[{
"err":1,
"info":"invalid",
"value":""
}]
a v případě úspěchu:
[{
"err":0,
"info":"ok",
"value":"22"
}]
Feed odběratelů
V aplikaci klienta je dostupná URL zobrazující následující JSON pole. Obsah je žádán aplikací MAILservis pomocí URL s jednorázovým tokenem v parametru GET.
Příklad URL:
http://domenaklienta.cz/mailservis-address?token=TOKEN
Aplikace klienta ověří platnost tokenu a zobrazí požadovaná data
[{
"mail":"test@mailservis.cz",
"subscribe":"1",
"verified":"1",
"client":"22",
"replace":{
"name": "Jan",
"surname": "Novák",
....
},
"labels":[
"Praha",
"Velkoodběratel",
....
],
"ecomerce":{
"lastorder": "22-02-2020",
"qtorders": "4",
"qtrevenue": "3850CZK",
"shippingmethod": "THA"
},
},
....
]
Doporučujeme nastavit následující JSON pole s chybovým hlášením při neúspěšné validaci tokenu. Aplikace MAILservis může volat adresy bez tokenu pro ověření dostupnosti aplikace klienta.
{"err":1,"info":"denied"}
Hodnoty očekáváné MAILservisem
- mail – adresa příjemce
- subscribe – přihlášen (1), odhlášen (0), neevidováno (2 – v případě že aplikace tento stav neeviduje, evidence zůstává pouze na straně MS)
- verified – ověřená adresa dle GDPR ano (1), ne (0)
- client – číslo klienta ke kterému se mají adresy přiřadit (v hodnotě value při ověření tokenu)
- replace – pole hodnot, které má poté klient možnost použít v šabloně pro nahrazení; libovolné, název proměnné bez diakritiky a mezer
- labels – štítky které se mají k adrese přiřadit, libovolné
- ecomerce – data o objednávkách, ze kterých budou vytvořeny chytré štítky
- lastorder - datum poslední objednávky, pokud zatím žádná neproběhla, ponechte prázdné, ve formátu DD-MM-YYYY
- qtorders - počet objednávek za poslední 3 měsíce, číslo
- qtrevenue - hodnota objednávek za poslední 3 měsíce, číslo nebo řetězec s kódem měny
- shippingmethod - preferovaná nebo poslední doprava, snažte se o stručnost, doporučeně do 5 znaků
Odhlášení odběratele
Tuto URL volá aplikace MAILservis pro předání informace o odhlášení odběratele. Například při odhlášení odběru pomocí odkazu na konci newsletteru. MAILservis předpokládá variantu, že se odběratel může v aplikaci klienta znovu přihlásit, a proto respektujte hodnotu z feedu odběratelů.
https://domenaklienta.cz/mailservis-unsubscribe?token=TOKEN&unsubscribe=adresa-pro@odhlaseni.cz
Aplikace klienta si token ověří na http://mailservis.cz/auth/verify.php?check=TOKEN a adresu na své straně zaeviduje jako odhlášenou
Feed obsahu
V aplikaci klienta je dostupná URL zobrazující následující JSON pole. Obsah je žádán aplikací MAILservis pomocí URL s jednorázovým tokenem v parametru GET.
JSON s obsahem umožňuje přihlášenému uživateli v aplikaci MAILservis při vytváření šablony vybírat obsah z jeho webové aplikace, například poslední články z webu nebo produkty z e-shopu.
Příklad URL:
http://domenaklienta.cz/mailservis-feed?token=TOKEN
Aplikace klienta ověří platnost tokenu a zobrazí požadovaná data
{ "data":
[{
"type":"Článek",
"language":"1",
"title":"Nadpis obsahu",
"perex":"Perex obsahu",
"date":"0000-00-00 00:00:00",
"url":"Kompletní URL adresa obsahu",
"image":"Kompletní URL adresa obrázku k obsahu",
},
....
],
"languages":
{ "1":
{
"id":"1",
"name":"Česky",
"code":"cs"
},
"2":
{ .... }
....
}
}
Doporučujeme nastavit následující JSON pole s chybovým hlášením při neúspěšné validaci tokenu. Aplikace MAILservis může volat adresy bez tokenu pro ověření dostupnosti aplikace klienta.
{"err":1,"info":"denied"}
Hodnoty očekáváné v JSON poli „data“.
- type – typ obsahu, seskupením typů dojde k vytvoření štítků pro třídění v aplikaci
- language – id jazyka obsahu, jednotlivé jazyky jsou ve feed v poli "languages"
- title – nadpis obsahu, maximálně 256 znaků
- perex – perex obsahu, dlouhý text
- date – Datum přidání, slouží k řazení ve FeedManageru v aplikaci MAILservis
- url – Kompletní URL adresa obsahu
- image – Kompletní URL adresa k obrázku
Hodnoty očekáváné v JSON poli "languages". Pokud nechcete používat rozdělen dle jazyka, odesílejte obsah v poli "data" se stejným id (0 či 1), v tomto poli pak jazyk libovolně, roletka nebude zobrazena.
- id – id jazyka korespondující s id jazyka které jsou použitá v poli "data"
- name – název jazyka
- code – krátký kód jazyka
Data z feedu jsou v aplikaci MAILservis zobrazeny následujícím způsobem:
PHP Vzory
Vzor php kódu pro ověření tokenu autentizační služby a odeslání feedu příjemců:
<?php
//tuto URL volá MAILservis denně, ve 3h ráno
//ověření tokenu
$response=json_decode(file_get_contents("https://mailservis.cz/auth/verify.php?check=".$_GET["token"]), true);
if($response['err'] == 1){
//v případě chyby spojení končí
$arr["err"]=1;
$arr["info"]="denied";
die(json_encode($arr));
}
$client = $response["value"];
//příklad získání adres z aplikace klienta
$query = "SELECT * FROM tabUsers";
$data = mysql_query($query);
$out = array();
while ($zaznam = mysql_fetch_assoc($data)) {
//formát pole které očekává MAILservis zpět
unset($labels);
$labels = array();
$labels[] = "Zákazník";
unset($replace);
$replace = array();
$replace["name"] = $zaznam["Jmeno"];
$replace["surname"] = $zaznam["Prijmeni"];
$tmp = array(
"mail"=>$zaznam["Email"],
"subscribe" => $zaznam["Odber"],
"client" => $client,
"replace" => $replace,
"labels" => $labels );
$out[] = $tmp;
}
//vypsání polí všech adres(a případných příznaků) ve formátu json, ukončení spojení
ob_clean();
echo json_encode($out);
die;
Vzor php kódu pro ověření tokenu autentizační služby a odhlášení příjemce:
<?php
// tuto URL volá MAILservis ve chvíli kdy se klient odhlásí
//ověření tokenu
$response=json_decode(file_get_contents("https://mailservis.cz/auth/verify.php?check=".$_GET["token"]), true);
if($response['err'] == 1){
//v případě chyby spojení končí
$arr["err"]=1;
$arr["info"]="denied";
die(json_encode($arr));
}
//získání adresy která se má odhlásit
$mail = $_GET["unsibscribe"];
//příklad evidence odhlášení v aplikaci klienta
$query = "UPDATE tabUsers SET odber = 0 where mail = '$mail' ";
mysql_query($query);
//odpověd do MAILservisu že odhlášení proběhlo v pořádku
ob_clean();
$arr["err"]=0;
$arr["info"]="done";
die(json_encode($arr));
die;
Vzor php kódu pro ověření tokenu autentizační služby a odeslání feedu obsahu:
<?php
//tuto URL volá MAILservis každých 20 minut
//ověření tokenu
$response=json_decode(file_get_contents("https://mailservis.cz/auth/verify.php?check=".$_GET["token"]), true);
if($response['err'] == 1){
//v případě chyby spojení končí
$arr["err"]=1;
$arr["info"]="denied";
die(json_encode($arr));
}
$client = $response["value"];
//příklad získání obsahu z aplikace klienta
$query = "SELECT * FROM tabObsah";
$data = mysql_query($query);
$out = array();
while ($zaznam = mysql_fetch_assoc($data)) {
$tmp = array(
"type"=>$zaznam["type"],
"language" => $zaznam["language"],
"title" => $zaznam["title"],
"perex" => $zaznam["perex"],
"date" => $zaznam["date"],
"url" => $zaznam["url"],
"image" => $zaznam["image"] );
$out["data"][] = $tmp;
}
//příklad získání jazyků z aplikace klienta
$query = "SELECT * FROM tabMutace";
$data = mysql_query($query);
$out = array();
while ($zaznam = mysql_fetch_assoc($data)) {
$tmp = array(
"id"=>$zaznam["id"],
"name" => $zaznam["name"],
"code" => $zaznam["code"] );
$out["languages"][$zaznam["id"]] = $tmp;
}
//vypsání polí všech adress(a případných příznaků) ve formátu json, ukončení spojení
ob_clean();
echo json_encode($out);
die;