Einleitung
Evalanche stellt mit der SOAP API die primäre Schnittstelle mit Schreib- und Lesezugriff zur Verfügung. Mit der SOAP API können Daten objektspezifisch abgefragt und geändert werden. Der zur Verfügung stehende Funktionsumfang ermöglicht weitestgehend die Fernsteuerung des Systems.
Bitte beachten!
Verwenden Sie für die Nutzung der SOAP API unbedingt einen eigenen globalen Benutzer. Sie sollten keinesfalls diesen Benutzer nutzen, um in Evalanche zu arbeiten!
Ansonsten droht Gefahr durch einen Wechsel in einen Mandanten, den globalen Benutzer zu einem Mandanten-Benutzer zu machen. Dieser Status bleibt solange bestehen, bis der Benutzer über die Systemoberfläche wieder auf die “Globale Übersicht” wechselt.
Dies hat Auswirkungen auf alle Methoden, welche den Parameter mandator_id benötigen. Hier ignoriert der globale Benutzer, der in einen Mandanten gewechselt hat, den Parameter mandator_id und verwendet stattdessen die ID des Mandanten, in den er gewechselt hat.
Verwendung der API
Authentifizierung
Die Authentifizierung erfolgt über Basic Auth. Die erforderlichen Schritte werden in der Regel von den verwendeten Bibliotheken übernommen.
Der für den Zugriff auf die API verwendete Benutzer benötigt das Systemrecht Webservices 2.0. Wie Sie Rollen und Rechte konfigurieren, erfahren Sie in unserem Beitrag "Rollen und Rechte konfigurieren".
Unterstützte Protokolle
Das SOAP Protokoll ist sprachunabhängig. Server und Clients können in beliebigen Sprachen wie Java, Perl, Python, PHP oder Ruby implementiert werden.
Details zu Bibliotheken finden sich unter https://de.wikipedia.org/wiki/SOAP#Implementierungen
Zugriff auf Objekte bzw. Ressourcen
Folgende Objekttypen können über die Schnittstelle verarbeitet werden:
- Artikel
- Artikel-Vorlagen
- Artikel-Typen
- Container
- Container-Typen
- Datei
- Formular
- Formular Alias
- Bild
- eMailings
- eMailing-Vorlage
- Pool
- Pool Data Miner
- Report
- Zielgruppe
Einschränkungen
Bitte beachten Sie, dass der einzelne Request über die API kleiner als 10MB sein muss. Dies ist eine Sicherheitsrichtlinie. Größere Requests müssen geteilt übertragen werden.
E-Mail Validierung
Beim Eintragen von E-Mail-Adressen findet eine Validierung statt, die verhindert, ungültige E-Mail-Adressen in einem Pool einzutragen. Folgende Kriterien werden geprüft:
- E-Mail Syntax korrekt
- E-Mail nicht in Blacklist vorhanden
- Domain hat gültigen A-Record
- Domain hat gültigen MX-Record
Allgemeine Verwendung
EvalancheHashMaps werden überall dort eingesetzt, wo Listen von Key-Value-Paaren benötigt werden, deren Keys jedoch erst zur Laufzeit bestimmbar sind.
Da die Eigenschaft des einzelnen EvalancheHashMapItem vom Typ string sein muss, gelten folgende Regeln bei abweichenden Datentypen:
Mehrzeilige Eingabe (formatiert/HTML-Editor)
Valides XHTML mit optionalem Root-Node, beispielsweise:
Foo & Bar
oder
<div>Foo & Bar</div>
Invalides XHTML kann dazu führen, dass der Artikel über die Oberfläche nicht mehr bearbeitet werden kann. Mailings, die einen solchen Artikel enthalten, können ggf. nicht mehr versendet werden!
Ganze Zahl
Wird als String-Repräsentation übergeben (in PHP durch strval($integer_value)
Wahr/Falsch
Wahr wird als String mit dem Inhalt 1, Falsch als String mit dem Inhalt 0 übergeben.
Einfachselektionen
Die Options-ID des Wertes wird als String-Repräsentation übergeben.
Datum & Datum mit Uhrzeit
Unix-Timestamp als String-Repräsentation.
Es können auch Datumswerte als String (z.b.: 2020-01-01) übergeben werden. Dies führt jedoch dazu, dass bei Aktualisierungen mit bereits vorhandenen Datumswerten das Profil-Änderungsdatum gesetzt wird.
Verwendung bei Artikeln und Containern
Mehrfachselektionen: Die Liste der ausgewählten Options-IDs als Liste von IDs getrennt mit “|”, z. B. 123|456|789
Links (Liste): Liste von Objekten mit den Eigenschaften text und url JSON serialisiert, z. B. [{“text”:”DuckDuckGo”,”url”:”https://ddg.gg“},{“text”:”Google”,”url”:”http://www.google.com“}]
Werte (Liste): Liste von Objekten mit den Eigenschaften key und value JSON serialisiert, z. B. [{“key”:”foo”,”value”:”bar”},{“key”:”herp”,”value”:”derp”}]
Bild (Liste): Die Liste der ausgewählten Bild-IDs als JSON serialisierte Liste, z. B. (“[1233,1234,1235]”)
Container (Liste): Die Liste der ausgewählten Container-IDs als JSON serialisierte Liste, z. B. (“[1233,1234,1235]”)
Verwendung bei Profilen
Mehrfachselektionen: Die Liste der ausgewählten Options-IDs als mit | (“pipe”) serialisierter String, z. B. ("|1233|1234|1235|")
Einfachselektionen: Die ausgewählte Options-ID wird ebenfalls als mit | (“pipe”) serialisierter String, z. B. ("|1233|")
UID: Die verschlüsselte ID eines Profiles kann über das virtuelle Attribut “SID” abgefragt werden. Bei Methoden, die alle Profildaten zurückliefern, ist das virtuelle Attribut “SID” automatisch vorhanden.
WSDL (Web Services Description Language)
Informationen zu Zugriffspunkten und WSDL Dateien finden Sie in der folgenden Tabelle:
Port | WSDL Document/literal | WSDL RPC/encoded |
---|---|---|
Article | [LOGIN_DOMAIN]/soap.php/wsdl/article | [LOGIN_DOMAIN]/soap.php/wsdlcompat/article |
Articletemplate | [LOGIN_DOMAIN]/soap.php/wsdl/articletemplate | [LOGIN_DOMAIN]/soap.php/wsdlcompat/articletemplate |
Articletype | [LOGIN_DOMAIN]/soap.php/wsdl/articletype | [LOGIN_DOMAIN]/soap.php/wsdlcompat/articletype |
Blacklist | [LOGIN_DOMAIN]/soap.php/wsdl/blacklist | [LOGIN_DOMAIN]/soap.php/wsdlcompat/blacklist |
Campaign | [LOGIN_DOMAIN]/soap.php/wsdl/campaign | [LOGIN_DOMAIN]/soap.php/wsdlcompat/campaign |
Category | [LOGIN_DOMAIN]/soap.php/wsdl/category | [LOGIN_DOMAIN]/soap.php/wsdlcompat/category |
Container | [LOGIN_DOMAIN]/soap.php/wsdl/container | [LOGIN_DOMAIN]/soap.php/wsdlcompat/container |
Containertype | [LOGIN_DOMAIN]/soap.php/wsdl/containertype | [LOGIN_DOMAIN]/soap.php/wsdlcompat/containertype |
Document | [LOGIN_DOMAIN]/soap.php/wsdl/document | [LOGIN_DOMAIN]/soap.php/wsdlcompat/document |
Form | [LOGIN_DOMAIN]/soap.php/wsdl/form | [LOGIN_DOMAIN]/soap.php/wsdlcompat/form |
Image | [LOGIN_DOMAIN]/soap.php/wsdl/image | [LOGIN_DOMAIN]/soap.php/wsdlcompat/image |
Mailing | [LOGIN_DOMAIN]/soap.php/wsdl/mailing | [LOGIN_DOMAIN]/soap.php/wsdlcompat/mailing |
Mailingvorlage | [LOGIN_DOMAIN]/soap.php/wsdl/mailingtemplate | [LOGIN_DOMAIN]/soap.php/wsdlcompat/mailingtemplate |
Mandator | [LOGIN_DOMAIN]/soap.php/wsdl/mandator | [LOGIN_DOMAIN]/soap.php/wsdlcompat/mandator |
Milestone | [LOGIN_DOMAIN]/soap.php/wsdl/milestone | [LOGIN_DOMAIN]/soap.php/wsdlcompat/milestone |
Pool | [LOGIN_DOMAIN]/soap.php/wsdl/pool | [LOGIN_DOMAIN]/soap.php/wsdlcompat/pool |
Pooldataminer | [LOGIN_DOMAIN]/soap.php/wsdl/pooldataminer | [LOGIN_DOMAIN]/soap.php/wsdlcompat/pooldataminer |
Profile | [LOGIN_DOMAIN]/soap.php/wsdl/profile | [LOGIN_DOMAIN]/soap.php/wsdlcompat/profile |
Report | [LOGIN_DOMAIN]/soap.php/wsdl/report | [LOGIN_DOMAIN]/soap.php/wsdlcompat/report |
Scoring | [LOGIN_DOMAIN]/soap.php/wsdl/scoring | [LOGIN_DOMAIN]/soap.php/wsdlcompat/scoring |
Smartlink | [LOGIN_DOMAIN]/soap.php/wsdl/smartlink | [LOGIN_DOMAIN]/soap.php/wsdlcompat/smartlink |
Targetgroup | [LOGIN_DOMAIN]/soap.php/wsdl/targetgroup | [LOGIN_DOMAIN]/soap.php/wsdlcompat/targetgroup |
User | [LOGIN_DOMAIN]/soap.php/wsdl/user | [LOGIN_DOMAIN]/soap.php/wsdlcompat/user |