Zustellung benutzerdefinierter Nachrichten
Wenn Sie auf der OTP-Plattform benutzerdefinierte Vorlageninhalte erstellt haben, rufen Sie diese API auf, um benutzerdefinierte Nachrichteninhalte zu senden.
Endpoint
POST https://otp.api.engagelab.cc/v1/custom-messages
Authentifizierung
Verwenden Sie zur Authentifizierung HTTP Basic Authentication und fügen Sie Authorization dem HTTP-Header hinzu:
Authorization: Basic ${base64_auth_string}
Der Algorithmus zur Generierung von base64_auth_string lautet: base64(dev_key:dev_secret)
Anfrageformat
Anfrage-Header
POST /v1/custom-messages HTTP/1.1
Content-Type: application/json
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
Anfrage-Body
{
"to": "+6591234567",
"template": {
"id": "test-template-1",
"params": {
"code": "codevalue",
"var1": "value1"
}
}
}
Anfrageparameter
Ein Anfrageobjekt wird im JSON-Format dargestellt, daher muss der Anfrage-Header Content-Type: application/json enthalten.
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| to | String | Erforderlich | Zustellungsziel: eine Mobiltelefonnummer oder E-Mail-Adresse, z. B. +6598765432 oder support@engagelab.com |
| template | JSON Object | Erforderlich | Vorlageninformationen. Siehe die verschachtelten Parameter unten |
| |_ id | String | Erforderlich | Vorlagen-ID |
| |_ params | JSON Object | Optional | Vorlagenparameter |
| _ |_ code | String | Optional | Erforderlich, wenn es sich beim Vorlagentyp um einen Verifizierungscode handelt |
| _ |_ var | String | Optional | Wert des benutzerdefinierten Variablenschlüssels der Vorlage. Wenn Sie beim Erstellen der Vorlage benutzerdefinierte Variablen definiert haben, weisen Sie ihnen hier Werte zu. Falls keine Werte angegeben werden, wird der Variablenschlüssel direkt zugestellt, z. B. {{var1}} |
Hinweise zu params
- Für vordefinierte Vorlagenvariablen wie
{{brand_name}},{{ttl}}und{{pwa_url}}müssen Sie keine Werte übergeben. Das System ersetzt sie automatisch durch die Inhalte, die beim Erstellen der Vorlage festgelegt wurden. - Wenn der Vorlagentyp ein Verifizierungscode ist, müssen Sie die Variable
{{code}}übergeben, andernfalls wird ein Fehler zurückgegeben. - Wenn der Vorlageninhalt benutzerdefinierte Variablenfelder enthält, die beim Erstellen der Vorlage definiert wurden, weisen Sie ihnen ebenfalls über
paramsWerte zu. Für den VorlageninhaltHi {{name}}, your verify code is {{code}}müssen Sie beispielsweise den Parameterparams: {"name":"Bob"}zuweisen.
Anfragebeispiele
1. Einen benutzerdefinierten Verifizierungscode senden
{
"to": "+6591234567",
"template": {
"id": "code-template",
"params": {
"code": "123456"
}
}
}
2. Benutzerdefinierte Benachrichtigungsinhalte senden
{
"to": "+6591234567",
"template": {
"id": "notification-template",
"params": {
"order": "123456"
}
}
}
3. Benutzerdefinierte Marketinginhalte senden
{
"to": ["+6591234567"],
"template": {
"id": "marketing-template",
"params": {
"name": "EngageLab",
"promotion": "30%"
}
}
}
Antwortparameter
Erfolgreiche Antwort
| Field | Type | Required | Description |
|---|---|---|---|
| message_id | String | Required | Nachrichten-ID, die eine Nachricht eindeutig identifiziert |
| send_channel | String | Required | Gibt den aktuell für die Zustellung verwendeten Kanal an. Mögliche Werte: whatsapp, sms, email, voice |
{
"message_id": "1725407449772531712",
"send_channel": "sms"
}
Beachten Sie, dass der zurückgegebene Wert von send_channel nicht den endgültigen Kanal darstellt, der für die Zustellung der Nachricht an den Benutzer verwendet wird. Er gibt nur den aktuell verwendeten Kanal an. Wenn beispielsweise die in der Vorlage konfigurierte Strategie festlegt, dass bei einer fehlgeschlagenen WhatsApp-Zustellung automatisch eine erneute Zustellung über den SMS-Kanal erfolgen soll, gibt die API-Antwort whatsapp zurück. Nachdem nach einer bestimmten Zeit ein Zustellungsfehler erkannt wurde, sendet das System dann über den SMS-Kanal.
Fehlgeschlagene Antwort
Der HTTP-Statuscode ist 4xx oder 5xx, und der Antwort-Body enthält die folgenden Felder:
| Field | Type | Required | Description |
|---|---|---|---|
| code | int | Required | Fehlercode. Weitere Informationen finden Sie unter Error Codes |
| message | String | Required | Fehlerdetails |
{
"code": 5001,
"message": "sms send fail"
}
Fehlercodes
| Error Code | HTTP Code | Description |
|---|---|---|
| 1000 | 500 | Interner Fehler |
| 2001 | 401 | Authentifizierung fehlgeschlagen. Es wurde kein gültiges Token bereitgestellt |
| 2002 | 401 | Authentifizierung fehlgeschlagen. Das Token ist abgelaufen oder wurde deaktiviert |
| 2004 | 403 | Keine Berechtigung, diese API aufzurufen |
| 3001 | 400 | Ungültiges Format der Anfrageparameter. Bitte prüfen Sie, ob der JSON-Inhalt dem erforderlichen Parameterformat entspricht |
| 3002 | 400 | Ungültige Anfrageparameter. Bitte prüfen Sie, ob die Anfrageparameter die Anforderungen erfüllen |
| 3003 | 400 | Ungültige Anfrageparameter. Die zugehörige fachliche Validierung ist fehlgeschlagen. Details finden Sie in der Fehlerbeschreibung im Feld message |
| 3004 | 400 | Häufigkeitslimit überschritten. Für dieselbe Vorlage und denselben Zielbenutzer kann die Zustellung innerhalb der Gültigkeitsdauer des Verifizierungscodes nicht erneut ausgelöst werden |
| 4001 | 400 | Zugehörige Ressource existiert nicht. Beispielsweise wurde beim Senden einer Vorlagennachricht eine nicht vorhandene Vorlage verwendet |
| 5001 | 400 | Senden fehlgeschlagen (allgemein/sonstige) |
| 5011 | 400 | Ungültiges Format der Mobiltelefonnummer |
| 5012 | 400 | Ziel nicht erreichbar |
| 5013 | 400 | Nummer wurde zur Blacklist hinzugefügt |
| 5014 | 400 | Inhalt entspricht nicht den Vorgaben |
| 5015 | 400 | Nachricht abgefangen/abgelehnt |
| 5016 | 400 | Interner Sendefehler |
| 5017 | 400 | Keine Berechtigung für den Versand nach Festlandchina |
| 5018 | 400 | Problem mit dem Mobilgerät (ausgeschaltet/Dienst ausgesetzt) |
| 5019 | 400 | Benutzer hat sich abgemeldet |
| 5020 | 400 | Nummer ist nicht registriert/ungültige Nummer |










