Tahák pro úpravu API metod pro správu kontaktů ze SE1 na SE2 Co je třeba mít na paměti: XML- RPC API zůstává. Díky změně přístupu ke kontaktům se však mění metody. URL API se mění na https://app.smartemailing.cz/api/v2 Username zůstává stejný. Je vygenerován nový API token o délce 40 znaků. Kontakty jsou v SE2 unikátní. Hodnoty základních i vlastních polí kontaktů jsou tedy dostupné ve všech seznamech. Pokud byl v SE1 kontakt ve více seznamech (jako více kontaktů se stejnou emailovou adresou), je převeden postupným sloučením těchto kontaktů do prvního z nich (jeho ID bude přeneseno, ostatní zanikají). Vybraná globální vlastní pole (jméno, příjmení,...) se v SE2 mění na výchozí pole kontaktu (uživatelská vlastní pole zůstávají včetně svých ID). ID seznamů jsou nezměněna. SE2 přistupuje oproti SE1 jinak ke kampaním a smart kampaním. Vlastní obsah emailu je od kampaně a smart kampaně oddělený. Tento obsah pak lze použít opakovaně pro rozesílku kampaní i smart kampaní s možností editace na jednom místě. Při převodu emailových kampaní je v ID rozesílky SE2 vyplněno hodnotou statid ze SE1. ID emailu v SE2 (tedy obsahu) je ID emailové kampaně ze SE1. Při převodu smart kampaní je ID smart kampaně v SE2 shodné s ID v SE1. K ID emailu (tedy obsahu) je v SE2 připočten offset 1000000, aby nedocházelo ke kolizím s obsahy kampaní. Kompletní dokumentaci včetně vzorových XML naleznete na http://www.smartemailing.cz/api/
Práce s kontakty Staré metody pro přídávání, aktualizaci a odstranění kontaktu se seznamu jsou nově nahrazeny jedinou metodou Contacts::createupdate
Stará metoda ze SE1 (V SE2 NEFUNKČNÍ) <usertoken>c0d646874b2153d236a4d1816e3501176c69c5ce</usertoken> <requesttype>sm_subscribers</requesttype> <requestmethod>addsubscribers</requestmethod> <contacts> <emailaddress>matin@smartemailing.cz</emailaddress> <mailinglist>50</mailinglist> <format>html</format> <confirmed>1</confirmed> <status>active</status> <customfields> <fieldid>2</fieldid> <value>martin</value> <fieldid>3</fieldid> <value>strouhal</value> <fieldid>12345</fieldid> <value>moje vlastní pole</value> </customfields> </contacts>
Nová metoda v SE2: <usertoken>novy_xml_token_o_delce_40_znaku</usertoken> <requesttype>contacts</requesttype> <requestmethod>createupdate</requestmethod> Z následujících polí je povinné pouze <emailaddress> V SE2 byla některá globální vlastní pole nahrazena přímo vlastnostmi kontaktu. Tabulka pro převod vlastních polí na vlastnosti kontaktu ve tvaru ID pole => název vlastnosti: $defaultfields = [ 1 => 'salution', 2 => 'name', 3 => 'surname', 4 => 'phone', 5 => 'cellphone', 8 => 'town', 10 => 'postalcode', 11 => 'country', 17 => 'company', 20 => 'street', 548 => 'notes', // 1623 => 'nameday', // admin.smartemailing.cz // 1510 => 'nameday', // admin2.smartemailing.cz // 1186 => 'nameday', // admin3.smartemailing.cz ]; <emailaddress>martin@smartemailing.cz</emailaddress> <language>cs_cz</language> cs_cz sk_sk en_gb <blacklisted>0</blacklisted> <name>martin</name> <surname>strouhal</surname> <titlesbefore>ing.</titlesbefore> <titlesafter>csc.</titlesafter> <birthday>2013-01- 01</birthday> <nameday>2013-11- 11</nameday> rok může být libovolný <salution></salution> nevyplněné bude doplněno automaticky <company>my Corp</company> <street>long 123</street> <town>my Town</town> <country>czech Republic</country> <postalcode>123456</postalcode> <notes>something very long</notes> <phone>+420123456789</phone> <cellphone>+420123456789</cellphone> <customfields> Mimo globální vlastní pole výše zůstávají vaše vlastní pole s nezměněným ID <id>12345</id> <value>hodnota v mém vlastním poli</value> </customfields>
<contactliststatuses> V SE2 existují kontakty unikátně. Všechny stavy v seznamech se nastavují zde, kontakt není potřeba zasílat do každého seznamu zvlášť <id>21</id> SE2 sjednocuje vlastnosti confirmed a active do jediné. Možné hodnoty jsou: unconfirmed - nepotvrzený confirmed - aktivní potvrzený kontakt unsubscribed - odhlášený removed - použijte pro odstranění ze seznamu při editaci už existujícího kontaktu Pokud v tomto výčtu nějaký seznam neuvedete, stav kontaktu v něm zůstává nezměněn <status>unsubscribed</status> <id>50</id> <status>confirmed</status> </contactliststatuses>
Získání informací o kontaktu Jediná metoda SE2 API zjistí data kontaktu a přiřazení k seznamům. Tato metoda nahrazuje několik metod v SE1. Jako vyhledávací klíč slouží ID kontaktu nebo emailová adresa. Staré metody v SE1 (V SE20 NEFUNKČNÍ) Získání podle ID kontaktu <usertoken>c0d646874b2153d236a4d1816e3501176c69c5ce</usertoken> <requesttype>sm_subscribers</requesttype> <requestmethod>getsubscriber</requestmethod> <subscriberid>25238</subscriberid> Záskání podle emailové adresy <usertoken>c0d646874b2153d236a4d1816e3501176c69c5ce</usertoken> <requesttype>sm_subscribers</requesttype> <requestmethod>getsubscriberbyemail</requestmethod> <emailaddress>martin@smartemailing.cz</emailaddress> <listid>1304</listid> Zjištění, zda se kontakt nachází v seznamu <usertoken>c0d646874b2153d236a4d1816e3501176c69c5ce</usertoken> <requesttype>sm_lists</requesttype> <requestmethod>issubscriberinlist</requestmethod> <emailaddress>martin@smartemailing.cz</emailaddress> <mailinglistid>759</mailinglistid> Nová metoda v SE2 nahrazující předchozí 3 metody <usertoken>novy_xml_token_o_delce_40_znaku</usertoken> <requesttype>contacts</requesttype> <requestmethod>getone</requestmethod> <id>25238</id> NEBO <emailaddress>martin@smartemailing.cz</emailaddress>
Vzorová odpověď serveru: <?xml version="1.0" encoding="utf- 8"?> <response> <status>success</status> <data> Základní pole kontaktu <language>cs_cz</language> <created>2013-05- 13 17:03:28</created> <updated>2013-05- 13 17:26:59</updated> <blacklisted>0</blacklisted> <emailaddress>lukas@smartemailing.cz</emailaddress> <domain>smartemailing.cz</domain> <name>lukáš</name> <surname>pour</surname> <titlesbefore/> <titlesafter/> <birthday/> <nameday/> <salution>martine</salution> <company/> <street>ulice 123</street> <town/> <country/> <postalcode/> <notes/> <phone/> <cellphone/> <softbounced>0</softbounced> <hardbounced>0</hardbounced> <id>25238</id> <realname/> Uživatelská vlastní pole <customfields> <id>12345</id> <value> Hodnota v mém vlastním poli </value> <id>48</id> <value> Jiná hodnota v jiném vlastním poli </value> </customfields> Přiřazení k seznamům Pokud kontakt v nějakém seznamu není, nebude zde vypsán. Hodnota "removed" se používá pouze při editaci, zde nefiguruje <contactliststatuses> <id>10</id> <status>confirmed</status> <added>2013-05- 13 17:03:28</added> <id>13</id> <status>unsubscribed</status> <added>2013-05- 17 17:03:28</added>
</contactliststatuses> </data> </response>