expo-IP CMS Benutzerhandbuch
Für die Nutzung des expo-IP CMS benötigen Sie einen beliebigen aktuellen Browser, der fehlerfrei den aktuellen HTML5 Standard unterstützt. Hierzu zählt NICHT der Browser: Microsoft INTERNET EXPLORER.Webhook User Create
für eigenes / externes Teilnehmer-Management
Verwenden Sie diesen Webhook nur dann, wenn Sie den Double OptIn Prozess von expo-IP NICHT nutzen möchten.
Mit diesem Webhook können Event-Besucher außerhalb des expo-IP CMS angelegt werden.
URL zum Anlegen eines Besuchers
https://<messename>.expo-ip.com/api/user/create
HTTP HEADER
Key |
Type |
Required |
Option |
X-API-KEY |
string |
yes |
|
POST Parameter
Key |
Type |
Required |
Option |
firstname |
string |
yes |
|
lastname |
string |
yes |
|
|
string |
yes |
|
title |
string |
no |
|
salutation |
integer |
no |
1 = Herr / Mr. 2 = Frau / Mrs. 3 = divers / other 4 = unbekannt / unknown |
timezone |
srtring |
no |
https://www.php.net/manual/de/timezones.php |
CustomFieldUser |
array |
no |
|
Die Struktur des CustomFieldUser [Array]
[
id =>
[
value => [string | id]
]
]
GET Parameter (Optional)
Key |
Type |
Required |
Default |
send_mail |
boolean |
no |
true |
source |
string |
no |
empty |
Return Values
Wenn API Key fehlerhaft: HTTP/1.1 404 Not Found
Wenn API Key korrekt im JSON Format (Beispiel):
{
„authToken“:“Gh8KzeweY_“,
„alreadyRegistered“:false,
„login_hash“:“4147cb55ecba4a6f94081ea58a2b37ff“,
„resultMessage“:“Die Email wurde an die angegebene E-Mail Adresse verschickt“
„userId“:“6572″
}
Beispiel:
Registriert werden soll ein Benutzer mit folgenden Werten
firstname= „Max“
lastname= „Muster“
email= „max@muster.de“
salutation = 1 (Mann / Mr.)
timezone = „Europe/Berlin“
Firmenname im CustomFieldUser [64] = „EXPO-IP GmbH“
Auswahlfeld im CustomFieldUser [82] = 1
Beispielcode für ein Formular und das Anlegen eines Benutzers in PHP:
/* Beispiel für das Anlegen eines EXPO Messe-Besuchers über den "Webhook" */ // MESSENAME durch den tatsächlichen Namen der Messe ersetzen: $strTargetURL = 'https://MESSENAME.expo-ip.com/api/user/create'; // API Key hier einsetzen $apiKey = 'aaaaXXXXaaaaXXXXaaaaXXXX'; // Die zu sendenden Daten $arrUserdata = [ 'email' => 'max@muster.de', 'firstname' => 'Max', 'lastname' => 'Muster', 'salutation' => 1, 'title' => 'Dr.', 'timezone' => 'Europe/Berlin', 'CustomFieldUser' => [ 64 => [ 'value' => 'EXPO-IP GmbH' ], 82 => [ 'value' => '1' ] ] ]; $ch = curl_init($strTargetURL); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array("X-API-KEY: " . $apiKey)); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($arrUserdata) ); curl_setopt($ch, CURLOPT_VERBOSE, '1'); curl_setopt($ch, CURLINFO_HEADER_OUT, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); if( ! $result = curl_exec($ch)) { die('Ein Fehler ist aufgetreten: ' . curl_error($ch)); } print 'Antwort vom Server:'; print $result;
Das Formular nimmt die Daten des anzulegenden Besuchers als JSON entgegen. Das ist aber nicht verpflichtend. Im Script ist erkennbar, wie die Daten per curl an die URL geschickt werden müssen.
Der Webhook sendet ein Ergebnis im JSON Format zurück, z.B.
{ "authToken":"Gh8KzeweY_", "alreadyRegistered":false, "login_hash":"4147cb55ecba4a6f94081ea58a2b37ff", "resultMessage":"Die Email wurde an die angegebene E-Mail Adresse verschickt",
"userId":"6572" }
alreadyRegistered (true / false) gibt an, ob ein Besucher mit dieser E-Mail bereits registriert war. Falls ja, wird der Besucher nicht erneut angelegt. Die Daten des Besuchers werden bei einer erneuten Registrierung nicht überschrieben.
Das authToken wird nicht mehr verwendet, wurde aber aus Kompatibilitätsgründen noch nicht entfernt.
Mit dem login_hash können sich neu registrierte Besucher an der Messe anmelden, indem der Hash an die URL angefügt wird:
https://testmesse.expo-ip.com/user/login/4147cb55ecba4a6f94081ea58a2b37ff
Die resultMessage gibt an, ob eine Mail mit dem Login-Link an den neu registrierten Besucher versandt wurde.
In JSON sieht die Struktur z.B. so aus:
{ "firstname" : "Alice", "lastname" : "Test", "email" : "alice@expo-ip.com", "salutation" : "2", "timezone" : "Europe/Berlin", "CustomFieldUser": { "1": {"value": "My Company"}, "2": {"value": "1"}, "3": {"value": "VIP"}, "4": {"value": "1"} } }