protected $MM_apiURL = "http://www.rozesilam.cz/API_connect.php";
Upozornění: Pokud byste chtěli dávat vadná (nebo škodná) data, skript na straně Rozesilam.cz data kontroluje a každý pokus přes api se loguje
2017-11-19 - 2018-11-19 * velké změny
Pomocí API můžete kontrolovat spoustu věcí, zde jsou příklady užití
Tato funkce vám vrátí řetězec pomocí kterého se můžete přihlásit do administrace. Toto přihlášení je platné pouze pro daný den, poté přihlašovací token vyprší. Toto slouží dobře, pokud chcete do své administrace zahrnout iframe s konkrétní stránkou na Rozesilam.cz. Neboť Rozesilam.cz pozná, že je volán z iframu, skryje horní menu a uživatel nemusí poznat, že pracuje v iframu.
<?php include('API_class.php'); $apiCall = new MassMailingAPI(); $apiCall->setSessionID("Vaše Příchozí SessionID"); $hash = $apiCall->LoginGetHash("vas@email.cz"); $report = $apiCall->SendRequest(); echo '<iframe src="http://www.rozesilam.cz/admin/mailingy/?'.$hash.'" id="iframe1" width="100%" height="1800" border="0" style="border: 0px"></iframe>'; ?>
Vrátí pole (array) aktivních (nesmazaných) mailingů.
<?php include('API_class.php'); $apiCall = new MassMailingAPI(); $apiCall->setSessionID("Vaše Příchozí SessionID"); $apiCall->StatsMesicniGet(); $report = $apiCall->SendRequest(); if (!$report) { echo $apiCall->getError(); }else { if ($report["action"] == "statsmesicni" && $report["MMpocet"]>0 && isset($report["array"]["stats"])) { foreach ($report["array"]["stats"] as $k => $v) { echo $v["date"]; echo ";"; echo (int)$v["mailingu"]; echo ";"; echo (int)$v["vraceno"]; echo ";"; echo (int)$v["doruceno"]; echo ";"; echo (int)$v["pocet_emailu"]; echo ";"; echo (int)$v["kliknuti"]; echo ";"; echo (int)$v["otevreno"]; echo ";"; echo (int)$v["odhlaseno"]; echo ";"; echo (int)$v["delivery_rate"]; echo ";"; echo (int)$v["odhlaseno_rate"]; echo ";"; echo (int)$v["click_rate"]; echo ";"; echo (int)$v["open_rate"]; echo ";"; echo (int)$v["open_per_mailing"]; echo ";"; echo (int)$v["click_per_mailing"]; echo ";"; echo (int)$v["odhlaseno_per_mailing"]; echo ";"; } } else { echo "Pravděpodobně jste ještě neodeslal žádnou emailovou kampaň, nemáte tedy k dispozici statistiky."; } } ?>
Tato položka se pokusí editovat uživatele, pokud uživatel neexistuje, vytvoří jej, pokud má uživatel příznak smazání, maže jej.
UserEdit($email,$data = array(),$skupiny = false,$odhlasit=false,$smazat=false,$odhlasit_ze_vsech_skupin=false)
@param string (email) - unique identifier - $email
* @param array of the additional data $data
* $data =
* stav (0 = aktivní, -1 = smazaný, -2 = odhlášený)
* info (string)
* jmeno (string(250))
* prijmeni (string(250))
* pohlavi ("","m","z")
* osloveni (string(250))
* adresa (string)
* rok_narozeni (int(4))
*
* další pole jsou mohou být vaše vlastní, jejich aliasy viz nastavení - API
* nelze posílat obrázky a soubory
*
* pokud byste chtěli dávat vadná data, skript na straně Rozesilam.cz data kontroluje a každý pokus přes api se loguje
* @param array nebo integer skupiny do které odběratel patří $skupiny
* @param bool $smazat
Jednoduché přidání/editace nového uživatele
<?php include('API_class.php'); $apiCall = new MassMailingAPI(); $apiCall->setSessionID("Vaše Příchozí SessionID"); $apiCall->UserEdit("test@test.cz",array("jmeno"=>"David","prijmeni"=>"Marek","pohlavi"=>"m","rok_narozeni"=>1999),99); $report = $apiCall->SendRequest(); if (!$report) { echo $apiCall->getError(); }else { echo "Akce proběhla v pořádku"; } ?>
Tento příklad u uživatele nastaví status, že je odhlášení - napojení na skupiny zůstává, ale uživatel díky příznaku nedostává ŽÁDNÝ email
Obalovač funkce UserEdit - odhlašuje uživatele z odběru - nastaví se u něj příznak -2, což znamená, že je uživatel odhlášený a ŽÁDNÝ email, ať je třeba ve více skupinách, mu nepříjde!
<?php include('API_class.php'); $apiCall = new MassMailingAPI(); $apiCall->setSessionID("Vaše Příchozí SessionID"); $apiCall->UserOdhlasit("odhlasit@test.cz"); $report = $apiCall->SendRequest(); if (!$report) { echo $apiCall->getError(); }else { echo "Akce proběhla v pořádku"; } ?>
Smaže uživatele
Obalovač funkce UserEdit - maže uživatele - ne v pravém slova smyslu, nastavuje příznak -1 u uživatele, uživatel je stále v databázi
<?php include('API_class.php'); $apiCall = new MassMailingAPI(); $apiCall->setSessionID("Vaše Příchozí SessionID"); $apiCall->UserSmazat("odhlasit@test.cz"); $report = $apiCall->SendRequest(); if (!$report) { echo $apiCall->getError(); }else { echo "Akce proběhla v pořádku"; } ?>
Pokud jste použili funkce UserSmazat nebo UserOdhlasit přes API (nebo nastaví příznaky přes administraci), tak tato funkce jej vrátí k životu
Obalovač funkce UserEdit - obnovuje uživatele - pokud byl uživatel smazaný nebo odhlášený, nastavuje u něj stav = 0 tedy aktivní uživatel pro příjem zpráv (pokud je zařazen ve skupině)
<?php include('API_class.php'); $apiCall = new MassMailingAPI(); $apiCall->setSessionID("Vaše Příchozí SessionID"); $apiCall->UserObnov("odhlasit@test.cz"); $report = $apiCall->SendRequest(); if (!$report) { echo $apiCall->getError(); }else { echo "Akce proběhla v pořádku"; } ?>
Vrátí seznam všech skupin. S příznakem i smazané.
<?php include('API_class.php'); $apiCall = new MassMailingAPI(); $apiCall->setSessionID("Vaše Příchozí SessionID"); $apiCall->SkupinaList(true); //true protože chceme i smazané $report = $apiCall->SendRequest(); if (!$report) { echo $apiCall->getError(); }else { if ($report["action"] == "skupinylist" && $report["MMpocetSkupin"]>0 && isset($report["array"]["skupina"])) { foreach ($report["array"]["skupina"] as $k => $v) { echo (int)$v["id"].";"; echo $v["name"].";"; echo $v["info"].";"; } } else { echo "Pravděpodobně nemáte založenou žádnou skupinu, založte jí."; } } ?>
Tato položka se edituje skupiny nebo přidává. Pro přidání lze použít zjednodušený obalovač funkce SkupinaAdd, kterému chybí první parametr - identifikátor skupiny a stav.
SkupinaEdit($id_skupiny nebo $string_nazev,$novynazev,$noveinfo,$stav=false =nemění se,-1 = smazaný, 0 = aktivní); SkupinaAdd($nazev,$info);
Jednoduché přidání/editace nové skupiny
<?php include('API_class.php'); $apiCall = new MassMailingAPI(); $apiCall->setSessionID("Vaše Příchozí SessionID"); $apiCall->SkupinaEdit(99,"Novy název skupiny","Nové info skupiny"); $report = $apiCall->SendRequest(); if (!$report) { echo $apiCall->getError(); }else { echo "Akce proběhla v pořádku"; } ?>
Smaže skupinu
Obalovač funkce SkupinaEdit - maže skupinu - ne v pravém slova smyslu, nastavuje příznak -1, skupina je stále v databázi
Pro id skupiny je možné použít její název jako string, skupina bude dohledána dle názvu.
<?php include('API_class.php'); $apiCall = new MassMailingAPI(); $apiCall->setSessionID("Vaše Příchozí SessionID"); $apiCall->SkupinaSmazat(99); $report = $apiCall->SendRequest(); if (!$report) { echo $apiCall->getError(); }else { echo "Akce proběhla v pořádku"; } ?>
Pokud jste použili funkci SkupinaSmazat přes API (nebo smazali přes administraci), tak tato funkce jej vrátí k životu
Obalovač funkce SkupinaEdit - obnovuje skupinu - pokud byla smazana, nastavuje u ní stav = 0 tedy aktivní
<?php include('API_class.php'); $apiCall = new MassMailingAPI(); $apiCall->setSessionID("Vaše Příchozí SessionID"); $apiCall->SkupinaObnov(99); $report = $apiCall->SendRequest(); if (!$report) { echo $apiCall->getError(); }else { echo "Akce proběhla v pořádku"; } ?>
Zjistí počet aktivních odběratelů u skupiny - povinný parametr ID vaší skupiny.
<?php include('API_class.php'); $apiCall = new MassMailingAPI(); $apiCall->setSessionID("Vaše Příchozí SessionID"); $apiCall->SkupinaPocetOdberatelu((int)99); $report = $apiCall->SendRequest(); if (!$report) { echo $apiCall->getError(); }else { echo $report["pocet_odberatelu"]." odběratelů"; } ?>
Odešle testovací zprávu pro mailing na daný email. ID mailingu můžete získat např. z MailingList();
<?php include('API_class.php'); $apiCall = new MassMailingAPI(); $apiCall->setSessionID("Vaše Příchozí SessionID"); $apiCall->MailingTestSend((int)99,"test@test.cz"); $report = $apiCall->SendRequest(); if (!$report) { echo $apiCall->getError(); }else { echo "Akce proběhla v pořádku"; } ?>
Označit mailing k odeslání aneb odešle mailing a uzamkne jej proti úpravám. ID mailingu můžete získat např. z MailingList();
<?php include('API_class.php'); $apiCall = new MassMailingAPI(); $apiCall->setSessionID("Vaše Příchozí SessionID"); $apiCall->MailingSend((int)99); $report = $apiCall->SendRequest(); if (!$report) { echo $apiCall->getError(); }else { echo "Akce proběhla v pořádku"; } ?>
Vrátí pole (array) aktivních (nesmazaných) mailingů.
<?php include('API_class.php'); $apiCall = new MassMailingAPI(); $apiCall->setSessionID("Vaše Příchozí SessionID"); $apiCall->MailingList(); $report = $apiCall->SendRequest(); if (!$report) { echo $apiCall->getError(); }else { if ($report["action"] == "mailinglist" && $report["MMpocetKampani"]>0 && isset($report["array"]["mailing"])) { foreach ($report["array"]["mailing"] as $k => $v) { echo (int)$v["id"].";"; if ($v["status"] == 0) echo "<strong>k odeslání</strong>"; elseif ($v["status"] == 3) echo "odeslán, statistiky"; elseif ($v["status"] == 1) echo "zpracovává se"; elseif ($v["status"] == 2) echo "ve frontě (odesílá se)"; else echo "-"; echo $v["predmet"].";"; echo $v["textinfo"].";"; echo $v["date_add"].";"; } } else { echo "Pravděpodobně nemáte založenou žádnou emailovou kampaň, založte jí."; } } ?>
Smaže mailing se zadaným ID; (Nastaví příznak smazání, zůstává stále v DB);
<?php include('API_class.php'); $apiCall = new MassMailingAPI(); $apiCall->setSessionID("Vaše Příchozí SessionID"); $apiCall->MailingDelete((int)99); $report = $apiCall->SendRequest(); if (!$report) { echo $apiCall->getError(); }else { echo "Akce proběhla v pořádku"; } ?>
Můžete získat informace o mailingu; Vrací tyto pole o mailingu:
<?php include('API_class.php'); $apiCall = new MassMailingAPI(); $apiCall->setSessionID("Vaše Příchozí SessionID"); $apiCall->MailingGet((int)99); $report = $apiCall->SendRequest(); if (!$report) { echo $apiCall->getError(); }else { print_r($report); echo "Akce proběhla v pořádku"; } ?>
Získá URL pro zobrazení mailingu - vhodné jako iframe po odeslání mailingu do statistik. Adresa, která se vrátí ($return[„link“]), je needitovatelný obsah jen pro náhled, pro editovatelný obsah je jiný příklad.
<?php include('API_class.php'); $apiCall = new MassMailingAPI(); $apiCall->setSessionID("Vaše Příchozí SessionID"); $apiCall->MailingGetContentLink((int)99); $report = $apiCall->SendRequest(); if (!$report) { echo $apiCall->getError(); }else { echo '<iframe src="'.$report["link"].'" width="100%" height="800"></iframe>'; } ?>
Získá URL pro zobrazení a EDITACI mailingu. Adresa, která se vrátí ($return[„link“]), je editovatelný obsah. Pokud již mailing nelze editovat, vrací chybu č.13, doporučujeme tedy při chybě získat náhledovou adresu.
<?php include('API_class.php'); $apiCall = new MassMailingAPI(); $apiCall->setSessionID("Vaše Příchozí SessionID"); $apiCall->MailingGetEditContentLink((int)99); $report = $apiCall->SendRequest(); if (!$report) { $apiCall->MailingGetContentLink((int)99); $report = $apiCall->SendRequest(); if (!$report) { echo $apiCall->getError(); }else{ echo '<iframe src="'.$report["link"].'" width="100%" height="800"></iframe>'; } }else { echo '<iframe src="'.$report["link"].'" width="100%" height="800"></iframe>'; } ?>
Editace existujícího mailingu - možno měnit předmět atp. Pro založení mailingu stačí „false“ u prvního parametru - Pro příklad přidání nového mailingu je přímo sekce níže. Zde je jen příklad editace
array dat = „predmet“⇒$predmet,„sablona“⇒$sablona,„skupiny“⇒$skupiny,„embedLocalImages“⇒$embedLocalImages
<?php include('API_class.php'); $apiCall = new MassMailingAPI(); $apiCall->setSessionID("Vaše Příchozí SessionID"); $apiCall->MailingEdit(99, array( "predmet"=>"Předmět zprávy eddd", //pro změnu předmětu "skupiny"=>array(23,21), //ID skupin, které dostanou mailing - array nebo samostatný integer. Pokud chybí skupiny v editaci, tak se nebudou měnit! "From"=>"mailing@xxx.cz", //nepovinné, pokud chybí, předvyplní se z vašeho nastavení "FromName"=>"xxx e-letter", //nepovinné, pokud chybí, předvyplní se z vašeho nastavení "ReplyTo"=>"xxx@xxx.cz", //nepovinné, pokud chybí, předvyplní se z vašeho nastavení "ReplyToName"=>"xxx e-letter", //nepovinné, pokud chybí, předvyplní se z vašeho nastavení "odeslat_start"=>"2013-12-20 20:20:20", //nepovinné jinak Y-m-d H:i:s "emailto_before"=>"me@me.cz", //nepovinné "emailto_after"=>"me@me.cz", //nepovinné "embedLocalImages"=>true,//nepovinné "linkWebVersion"=>true,//nepovinné ),array( "Obsah" => "Blabla" //nepovinný parametr $obsah = můžete poslat přednastavený text, $key => "obsah", kde $key je alias vašeho obsahové bloku ) //nepovinný parametr $obsah = můžete poslat přednastavený text, $key => "obsah", kde $key je alias vašeho obsahové bloku ); $report = $apiCall->SendRequest(); if (!$report) { echo $apiCall->getError(); }else { echo 'Akce proběhla úspěšně.'; } ?>
Přidání nového mailingu
**MailingAdd** param str $predmet\\ param int $sablona\\ param int or array of ints $skupiny\\ param bool $embedLocalImages\\ param array $data = From, FromName, ReplyTo, ReplyToName, odeslat_start, emailto_before, emailto_after, linkWebVersion\\ param array $obsah\\
<?php include('API_class.php'); $apiCall = new MassMailingAPI(); $apiCall->setSessionID("Vaše Příchozí SessionID"); $apiCall->MailingAdd( "Předmět mailingu", 5, //id šablony array(23,21), //ID skupin, které dostanou mailing - array nebo samostatný integer. true, //lokální obrázky v těle při odeslání array( "From"=>"mailing@xxx.cz", //nepovinné, pokud chybí, předvyplní se z vašeho nastavení "FromName"=>"xxx e-letter", //nepovinné, pokud chybí, předvyplní se z vašeho nastavení "ReplyTo"=>"xxx@xxx.cz", //nepovinné, pokud chybí, předvyplní se z vašeho nastavení "ReplyToName"=>"xxx e-letter", //nepovinné, pokud chybí, předvyplní se z vašeho nastavení "odeslat_start"=>"2013-12-20 20:20:20", //nepovinné jinak Y-m-d H:i:s "emailto_before"=>"me@me.cz", //nepovinné "emailto_after"=>"me@me.cz", //nepovinné "linkWebVersion"=>true,//nepovinné ),array( "Obsah" => "Blabla" //nepovinný parametr $obsah = můžete poslat přednastavený text, $key => "obsah", kde $key je alias vašeho obsahové bloku ) //nepovinný parametr $obsah = můžete poslat přednastavený text, $key => "obsah", kde $key je alias vašeho obsahové bloku ); $report = $apiCall->SendRequest(); if (!$report) { echo $apiCall->getError(); }else { echo 'Mailing založen.'; } ?>
Tento příklad je úplně základní, je třeba udělat nějakou základní protispamovou ochranu (např. captcha, javascript, …) a kontrolu, zda se jedná o email.
<?php if(isset($_POST["submitMe"]) && !empty($_POST["newMember"])) { $apiCall = new MassMailingAPI(); $apiCall->setSessionID($C_MM_sessID); $apiCall->setDefaultSkupina(9); //nastaví defaultní skupinu odběratele, takže není nutné jí dávat jako parametr v UserEdit(); $apiCall->UserEdit(trim($userek[$_POST["newMember"])); $report = $apiCall->SendRequest(); if (!$report) { echo $apiCall->getError(); }else { echo 'Uživatel vložen.'; } } ?> <form action="" method="post"> <label>Váš email</label> <input type="text" name="newMember" value="" /> <input type="submit" name="submitMe" value="Přihlásit k odběru" /> </form>