OTP senden
Diese Schnittstelle dient dazu, einen Verifizierungscode von der EngageLab-Plattform generieren zu lassen und ihn gemäß der in der Vorlage festgelegten Kanalstrategie zu senden.
Wenn Sie den Verifizierungscode lieber selbst generieren möchten, statt ihn von der EngageLab-Plattform generieren zu lassen, können Sie die Schnittstelle EngageLab OTP – Benutzerdefiniertes OTP senden aufrufen.
Anfrage-URL
POST https://otp.api.engagelab.cc/v1/messages
Authentifizierung
Bitte lesen Sie Authentifizierung, um zu erfahren, wie Sie die API-Authentifizierung durchführen.
Anfragebeispiel
Anfrage-Header
POST /v1/messages HTTP/1.1
Content-Type: application/json
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
Anfragetext
{
"to": "+6591234567",
"template":{
"id":"test-template-1",
"language": "default",
"params": {
"key1": "value1",
"key2": "value2"
}
}
}
Anfrageparameter
Ein Anfrageobjekt wird im JSON-Format ausgedrückt, daher muss der Anfrage-Header Content-Type: application/json enthalten.
| Parameter | Typ | Option | Beschreibung |
|---|---|---|---|
| to | String | Erforderlich | Sendeziel, Mobilfunknummer oder E-Mail-Adresse, +6598765432, support@engagelab.com |
| end_user_ip | String | Optional | IP-Adresse des Endbenutzers. Wird verwendet, wenn das Anfragelimit derselben IP-Adresse in verschiedenen Zeitfenstern begrenzt werden soll, z. B.: 10.3.5.7 |
| channel | String | Optional | Gibt den ersten Sendekanal an. Werte: sms/voice/zalo/viber. Wird er weggelassen, erfolgt das Routing gemäß send_channel_strategy der Vorlage. |
| template | JSON Object | Erforderlich | Vorlageninformationen, siehe untergeordnete Parameter unten |
| |_ id | String | Erforderlich | Vorlagen-ID |
| |_ language | String | Optional | Vorlagensprache, unterstützt die folgenden Sprachen: default (Standardsprache) zh_CN (Vereinfachtes Chinesisch) zh_HK (Traditionelles Chinesisch) en (Englisch) ja (Japanisch) th (Thailändisch) es (Spanisch) Wird nichts übergeben, gilt standardmäßig default. |
| |_ params | JSON Object | Optional | Werte für die Schlüssel benutzerdefinierter Vorlagenvariablen. Wenn Sie beim Erstellen der Vorlage Variablen angepasst haben, übergeben Sie deren Werte hier. Werden sie nicht übergeben, werden sie direkt als Variablenschlüssel gesendet, z. B. {{var}} |
Hinweise zu params
- Für in der Vorlage voreingestellte Felder wie
from_idgilt: Wenn der Feldwert inparamsnicht übergeben wird, wird beim Senden der Nachricht das voreingestelltefrom_idder Vorlage verwendet; - Wird ein Feldwert in
paramsübergeben, z. B.params:{"from_id":"12345"}, wird dasfrom_idder Vorlage beim Senden der Nachricht durch 12345 ersetzt; - Gleichzeitig werden auch benutzerdefinierte Variablenfelder im Vorlageninhalt, die beim Erstellen der Vorlage festgelegt wurden, über
paramsmit Werten belegt. Wenn der Vorlageninhalt beispielsweiseHi {{name}}, your verify code is {{code}}lautet, müssen Sie den Parameterparams:{"name":"Bob"}zuweisen. - Spezielle Variablen des Email-Kanals: Für den Email-Kanal können Sie über
paramsden E-Mail-Betreff (subject), den Absendernamen (from_name), die Absender-E-Mail (from_mail) usw. dynamisch überschreiben. Ausführliche Hinweise zur erweiterten Verwendung finden Sie unter Vorlage erstellen – Erweiterte Verwendung von E-Mail-Vorlagenvariablen.
Antwortparameter
Erfolgsantwort
| Feld | Typ | Option | Beschreibung |
|---|---|---|---|
| message_id | String | Erforderlich | Nachrichten-ID, identifiziert eine Nachricht eindeutig |
| send_channel | String | Erforderlich | Gibt den aktuellen Sendekanal an, Werte sind whatsapp/sms/email/voice/zalo/viber |
{
"message_id": "1725407449772531712",
"send_channel": "sms"
}
Beachten Sie, dass der zurückgegebene Wert send_channel nicht den endgültig an den Benutzer zugestellten Kanal darstellt, sondern nur den in dieser Phase verwendeten Kanal; wenn zum Beispiel die in der Vorlage konfigurierte Strategie vorsieht, dass nach einem fehlgeschlagenen WhatsApp-Versand automatisch auf den SMS-Kanal zurückgegriffen wird, gibt die Schnittstelle den Wert whatsapp zurück. Nachdem das System den Zustellfehler nach einer gewissen Zeit erkannt hat, verwendet es den SMS-Kanal zum Senden.
Fehlerantwort
Der HTTP-Statuscode ist 4xx oder 5xx, und der Antworttext enthält die folgenden Felder:
| Feld | Typ | Option | Beschreibung |
|---|---|---|---|
| code | int | Erforderlich | Fehlercode, Details siehe Fehlercode-Beschreibung |
| message | String | Erforderlich | Fehlerdetails |
{
"code": 5001,
"message": "sms send fail"
}
Fehlercodes
Die folgende Tabelle beschreibt nur Fehler, die diese API während der Authentifizierung, der Vorabprüfung vor dem Versand und der synchronen Übermittlung zurückgibt. Asynchrone Zustellfehler nach Annahme durch den Anbieter werden von dieser API nicht zurückgegeben; rufen Sie sie über die Nachrichtenstatusabfrage oder Callbacks ab.
Aufrufer sollten code verwenden, um den Fehlertyp zu bestimmen. message dient zur Anzeige des konkreten Grunds oder zur Fehlersuche; verlassen Sie sich nicht auf festen message-Text für die Geschäftslogik.
| Fehlercode | HTTP-Code | Beschreibung |
|---|---|---|
| 1000 | 500 | Interner Fehler |
| 2001 | 401 | Authentifizierung fehlgeschlagen, falsches Token übermittelt |
| 2002 | 401 | Authentifizierung fehlgeschlagen, Token ist abgelaufen oder deaktiviert |
| 2003 | 403 | Diese IP darf keine Nachrichten senden. |
| 2004 | 403 | Keine Berechtigung zum Aufruf dieser API |
| 3001 | 400 | Ungültiges Format des Anfrageparameters, bitte prüfen Sie, ob der JSON-Inhalt dem Parameterformat entspricht |
| 3002 | 400 | Fehlerhafte Anfrageparameter, bitte prüfen Sie, ob die Anfrageparameter die Anforderungen erfüllen |
| 3003 | 400 | Fehlerhafte Anfrageparameter, zugehörige Geschäftsprüfung fehlgeschlagen, Details siehe Fehlerbeschreibung im Feld message |
| 3004 | 400 | Frequenzlimit überschritten, für dieselbe Vorlage und denselben Zielbenutzer kann innerhalb der Gültigkeitsdauer des Verifizierungscodes nicht erneut gesendet werden |
| 3005 | 400 | Unzureichendes verfügbares Kontoguthaben |
| 3013 | 400 | Vorlage nicht freigegeben oder derzeit nicht verfügbar |
| 4001 | 400 | Zugehörige Ressource existiert nicht, z. B. Verwendung einer nicht existierenden Vorlage beim Senden einer Vorlagennachricht |
| 5001 | 400 | Versand fehlgeschlagen (allgemein/sonstige) |
| 5011 | 400 | Ungültiges Format der Mobilfunknummer |
| 5012 | 400 | Ziel nicht erreichbar |
| 5013 | 400 | Nummer steht auf der Blacklist |
| 5014 | 400 | Inhalt entspricht nicht den Vorgaben |
| 5015 | 400 | Nachricht abgefangen/abgelehnt |
| 5016 | 400 | Interner Sendefehler |
| 5017 | 400 | Keine Sendeberechtigung für die Region China |
| 5018 | 400 | Mobiltelefonfehler (ausgeschaltet/außer Betrieb) |
| 5019 | 400 | Benutzer hat sich abgemeldet |
| 5020 | 400 | Nummer nicht registriert/leere Nummer |
| 6001 | 429 | Sendefrequenz für dieselbe Mobilfunknummer überschritten; das Limitfenster kann pro Minute, Stunde oder Kalendertag sein |
| 6002 | 429 | Sendefrequenz für dieselbe Endbenutzer-IP überschritten; das Limitfenster kann pro Minute oder Stunde sein; wird nur geprüft, wenn end_user_ip in der Anfrage enthalten ist |
| 6003 | 429 | Globales tägliches oder monatliches Sendervolumen der Anwendung hat das Limit erreicht |
| 6006 | 403 | Senden ist für das aktuelle Land oder die Region nicht erlaubt |
| 6007 | 403 | Der SMS-Verifizierungscode-Versandservice ist ausgesetzt; kann für alle Länder/Regionen oder das aktuelle Land/die Region gelten |
| 6008 | 429 | Tägliches oder monatliches Sendervolumen für das aktuelle Land oder die Region hat das Limit erreicht |
Hinweise zu Ratenbegrenzungs- und Sendervolumenfehlern
3004ist die Vorlagen-Ratenkontrolle für OTP-Versand; das Limitfenster richtet sich nach der Vorlagenkonfiguration und entspricht nicht unbedingt der Gültigkeitsdauer des Verifizierungscodes.6001und6002sind Sicherheitsratenkontrollen auf Nummer- oder Endbenutzer-IP-Ebene.6003und6008bedeuten, dass diese Anfrage ein Sendervolumenlimit ausgelöst hat; nach Erreichen des Limits und Eintritt in den Aussetzungszustand können nachfolgende Anfragen6007zurückgeben.- Bei HTTP 429 nicht sofort fortlaufend erneut versuchen; später erneut versuchen und bei anhaltendem Auftreten einen Administrator oder den technischen Support kontaktieren.
5011bis5019decken nur Fehler ab, die in der synchronen Übermittlungsphase erkennbar sind. Status wie leere Nummern, ausgeschaltete Telefone oder Ablehnungen durch den Netzbetreiber nach Annahme durch den Anbieter können weiterhin über asynchronen Nachrichtenstatus oder Callbacks zurückgegeben werden.










