logoDokumentation
Suchen

Automate Your Workflows - EnageLab OTP Callback Settings Guide

Callback-Adresse konfigurieren

Wechseln Sie auf der Seite „Konfigurationsmanagement“ zu „Callback-Einstellungen“ und klicken Sie auf „Callback konfigurieren“, um den Callback für den EngageLab OTP-Service einzurichten.

EngageLab OTP Callback Konfigurations-Button

EngageLab OTP Callback Konfigurationsdetails

Wie oben gezeigt, füllen Sie nacheinander „Callback-Beschreibung“, „Callback-Adresse“, „Benutzername“, „Authentifizierung“, „Callback-Ereignisse“ usw. aus.

  • Aktivieren Sie die gewünschten Callback-Ereignisse, um bei Auftreten dieser Ereignisse Informationen an die angegebene Adresse zu übermitteln.
  • Klicken Sie rechts neben „Nachrichtenstatus“, um entsprechende Beispiele einzusehen.

Callback-Adresse festlegen

Bei der Konfiguration der Callback-Adresse sendet das EngageLab OTP-System eine HTTP-POST-Anfrage an die angegebene Adresse. Der jeweilige Entwickler-Service muss innerhalb von 3 Sekunden mit dem HTTP-Statuscode 200 antworten, andernfalls wird die Adresse vom System als ungültig betrachtet.

  • Der Entwickler-Service muss lediglich mit dem HTTP-Statuscode 200 antworten; eine Rückmeldung im Body ist nicht erforderlich.

Anfragebeispiel

Beispielsweise lautet die konfigurierte Callback-Adresse https://example.engagelabotp.callback.com. Wir senden folgende leere Nachricht an diese Adresse, dargestellt als curl-Befehl:

curl -X POST https://example.engagelabotp.callback.com -d ''
              
              curl -X POST https://example.engagelabotp.callback.com -d ''

            
Diesen Codeblock im schwebenden Fenster anzeigen

Antwortbeispiel

Der Entwickler-Service an der Callback-Adresse sollte nach Erhalt der POST-Anfrage ausschließlich mit HTTP 200 antworten:

HTTP/1.1 200 OK Content-Length: 0
              
              HTTP/1.1 200 OK
Content-Length: 0

            
Diesen Codeblock im schwebenden Fenster anzeigen

Sicherheitsmechanismus für Callback-Adresse konfigurieren

  • Benutzername festlegen

Dies ist optional. Wird ein Benutzername gesetzt, muss auch ein Secret angegeben werden.

Um die Herkunft der Nachricht als EngageLab zu bestätigen, können Sie die Authentifizierung der POST-Daten aktivieren.

Nach der Konfiguration von Benutzername und Secret enthält die von EngageLab gesendete Anfrage den HTTP-Header: X-CALLBACK-ID.

Der Wert von X-CALLBACK-ID ist: timestamp={timestamp};nonce={nonce};username={username};signature={signature}

Beispiel:

X-CALLBACK-ID: timestamp=1681991058;nonce=123123123123;username=test;signature=59682d71e2aa2747252e4e62c15f6f241ddecc8ff08999eda7e0c4451207a16b
              
              X-CALLBACK-ID: timestamp=1681991058;nonce=123123123123;username=test;signature=59682d71e2aa2747252e4e62c15f6f241ddecc8ff08999eda7e0c4451207a16b

            
Diesen Codeblock im schwebenden Fenster anzeigen

Der Timestamp ist der Zeitstempel der Callback-Nachricht, Nonce ist eine Zufallszahl, und Signature enthält die Signaturinformation. Die Berechnungsmethode lautet: signature = HMAC-SHA256(secret, timestamp+nonce+username)

Ein Python-Codebeispiel zur Berechnung der signature:

import hashlib, hmac def verify(username, secret, timestamp, nonce, signature): return signature == hmac.new( key=secret, msg='{}{}{}'.format(timestamp, nonce, username), digestmod=hashlib.sha256 ).hexdigest()
              
              import hashlib, hmac

def verify(username, secret, timestamp, nonce, signature):
    return signature == hmac.new(
        key=secret,
        msg='{}{}{}'.format(timestamp, nonce, username),
        digestmod=hashlib.sha256
    ).hexdigest()

            
Diesen Codeblock im schwebenden Fenster anzeigen
  • Authentifizierung konfigurieren

Dies ist optional. Falls Ihre Callback-Adresse eine Authentifizierung für Anfragen von EngageLab benötigt, geben Sie die Authentifizierungsdaten hier an. EngageLab fügt diese dann als Authorization-Header der Anfrage hinzu.


Callback-Request-Body

Sobald ein Callback-Ereignis ausgelöst wird, sendet der EngageLab OTP-Service Daten an die Callback-Adresse.

Beispiel „Nachrichtenstatus“-Anfrage

Der Nachrichtenstatus umfasst:

  • plan: Geplant zum Versand
  • sent: Gesendet
  • sent_failed: Versand fehlgeschlagen
  • delivered: Zugestellt
  • delivered_failed: Zustellung fehlgeschlagen
  • verified: Verifiziert
  • verified_failed: Verifizierung fehlgeschlagen
  • verified_timeout: Verifizierung abgelaufen
{ "total": 2, "rows": [{ "message_id": "1742442805608914944", "to": "+8615989574757", "server": "otp", "channel": "otp", "itime": 1704265712, "status": { "message_status": "plan", "status_data": { "msg_time": 170426571, "message_id": "1742442805608914944", "template_key": "auto_create_templateu25az170295320745", "business_id": "100917676394736" }, "error_code": 0 } }, { "message_id": "1742442805608914944", "to": "+8615989574757", "server": "otp", "channel": "otp", "itime": 1704265712, "status": { "message_status": "sent_failed", "status_data": { "msg_time": 1704265712, "message_id": "1742442805608914944", "template_key": "auto_create_templateu25az170295320745", "business_id": "100917676394736" }, "error_code": 5001, "error_detail": { "message": "sender config is invalid" } } }] }
              
              {
  "total": 2,
  "rows": [{
    "message_id": "1742442805608914944",
    "to": "+8615989574757",
    "server": "otp",
    "channel": "otp",
    "itime": 1704265712,
    "status": {
      "message_status": "plan",
      "status_data": {
        "msg_time": 170426571,
        "message_id": "1742442805608914944",
        "template_key": "auto_create_templateu25az170295320745",
        "business_id": "100917676394736"
      },
      "error_code": 0
    }
  }, {
    "message_id": "1742442805608914944",
    "to": "+8615989574757",
    "server": "otp",
    "channel": "otp",
    "itime": 1704265712,
    "status": {
      "message_status": "sent_failed",
      "status_data": {
        "msg_time": 1704265712,
        "message_id": "1742442805608914944",
        "template_key": "auto_create_templateu25az170295320745",
        "business_id": "100917676394736"
      },
      "error_code": 5001,
      "error_detail": {
        "message": "sender config is invalid"
      }
    }
  }]
}

            
Diesen Codeblock im schwebenden Fenster anzeigen

Beispiel „Benachrichtigungsnachrichten“-Anfrage

Ereignisse:

  • insufficient_balance: Guthaben unterhalb des Warnschwellwerts
{ "total": 1, "rows": [{ "server": "otp", "itime": 1712458844, "notification": { "event": "insufficient_balance", "notification_data": { "business_id": "1744569418236633088", "remain_balance": -0.005, "balance_threshold": 2 } } }] }
              
              {
  "total": 1,
  "rows": [{
    "server": "otp",
    "itime": 1712458844,
    "notification": {
      "event": "insufficient_balance",
      "notification_data": {
        "business_id": "1744569418236633088",
        "remain_balance": -0.005,
        "balance_threshold": 2
      }
    }
  }]
}

            
Diesen Codeblock im schwebenden Fenster anzeigen

Tipp: Nutzen Sie die EngageLab OTP Callback-Funktion, um Ihre Prozesse rund um Nachrichtenstatus und Systembenachrichtigungen effizient zu automatisieren und zu überwachen.

Weitere Informationen:


Jetzt EngageLab OTP Callback einrichten und von automatisierten Statusmeldungen profitieren!

icon
Vertrieb kontaktieren