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
email 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"}
    }
}