Event Notifications-Nutzdaten

In diesem Dokument wird die Spezifikation Event Notifications beschrieben.

Einführung

Dieses Dokument beschreibt die Details der Nutzdaten für das Senden von Ereignisbenachrichtigungen unter Verwendung der API-Quellen in Event Notifications. API-Quellen können verwendet werden, um Ereignisse von Ihren Back-End-Anwendungen zu senden. Sie können dieses Dokument verwenden, um Push-Benachrichtigungen aus dem Unternehmens-Backend zu senden.

Sie können die Nutzdaten eingehender Benachrichtigungen anzeigen, indem Sie die Option Benachrichtigungen speichern für Ihre Quelle aktivieren. Weitere Informationen finden Sie unter Anzeigen der Nutzdaten von Benachrichtigungen.

Ereignisse aus API-Quellen können nicht an IBM E-Mail- und IBM SMS-Ziele weitergeleitet werden.

`METHOD: POST`
`URL: /event-notifications/v1/apps/{instanceID}/notifications`
`Header: Authorization: Bearer <IAM token>`

Die Ereignisse entsprechen dem Cloud Event-Standard. Weitere Informationen zu Cloud Events finden Sie hier.

Transportmodi

Event Notifications unterstützt die folgenden zwei Modi zum Tätigen von Anrufen HTTP. Dies entspricht der Spezifikation von Cloud Events.

Binärmodus

Im Modus "Binärer Inhalt" wird der Wert des Ereignisses data unverändert in den Body der Anfrage bzw. der Antwort HTTP eingefügt. Der Wert des Attributs datacontenttype deklariert seinen Medientyp in der Kopfzeile HTTP Content-Type. Alle anderen Ereignisattribute werden auf die Kopfzeilen von HTTP abgebildet.

Allen Attributnamen wird das Präfix ce- vorangestellt und in die Kopfzeile eingefügt (mit Ausnahme von data und datacontenttype).

Der Binärmodus ist die empfohlene Methode zum Senden von Benachrichtigungen.

Strukturierter Modus

Im Modus "Strukturierter Inhalt" werden Ereignis-Metadaten-Attribute und Ereignisdaten in den Body der Anfrage HTTP eingefügt. Setzen Sie für den strukturierten Modus den Header Content-Type auf application/cloudevents+json.

Attribute

Obligatorische CE-Attribute

Die folgenden Attribute sind obligatorisch, damit die Ereignisanforderung akzeptiert wird.

ID (String)

Eine eindeutige Kennung, die jedes Ereignis identifiziert. source+id muss eindeutig sein. Das Backend muss in der Lage sein, diese ID in Protokollen und anderen Aufzeichnungen eindeutig zu verfolgen. Senden Sie eine eindeutige ID für jede Sendebestätigung. Die gleiche ID kann gesendet werden, wenn die Benachrichtigung nicht gesendet wurde.

source+id ist am IBM Cloud-Protokollierungsservice angemeldet. Mit dieser Kombination IBM können die Kunden die Bewegung von Ereignissen von einem System zum anderen verfolgen, was bei der Fehlersuche und -verfolgung hilfreich ist.

Beispiel
id: qwer-1234-1qsd-po94
Header für Binärmodus
ce-id: qwer-1234-1qsd-po94

source (URI-Referenz)

Dies ist die ID des Ereignisproduzenten. Eine Möglichkeit, die Quelle des Ereignisses eindeutig zu identifizieren Bei IBM Cloud Diensten ist dies die crn der Dienstinstanz, die die Ereignisse erzeugt. Bei API-Quellen kann dies etwas sein, mit dem sich das Back-End des Ereignisproduzenten eindeutig identifizieren kann.

Beispiel
source: com.mybank.customerbanking.accountmanagement
Header für Binärmodus
ce-source: com.mybank.customerbanking.accountmanagement

specversion (Zeichenfolge)

Dies ist die Version der Cloud-Events-Spezifikation, die Event Notifications derzeit unterstützt. Dieser Wert muss auf " 1.0 " gesetzt werden.

Beispiel
specversion:1.0
Header für Binärmodus
ce-specversion:1.0

type (Zeichenfolge)

Beschreibt den Ereignistyp. Sie hat das Format <event-type-name>:<sub-type>. Dieser Typ wird vom Produzenten definiert.

Dem Namen des Ereignistyps müssen die umgekehrten DNS-Namen vorangestellt werden, damit der Ereignistyp eindeutig identifiziert werden kann. Ein und derselbe Ereignistyp kann von zwei verschiedenen Quellen erzeugt werden. Es wird dringend empfohlen, anstelle von _ den Bindestrich - als Trennzeichen zu verwenden.

Beispiel 1
`type:com.acmebank.password:expiring-in-15-days`
Type: `com.acmebank.password`
Sub type: `expiring-in-15-days`
Header für Binärmodus
ce-type:com.acmebank.password:expiring-in-15-days`
Beispiel 2
`type:com.acmebank.password-changed`
Type: `com.acmebank.password-changed`
Sub type: N/A
Header für Binärmodus (für Beispiel 2)
`ce-type:com.acmebank.password-changed`

Optionale CE-Attribute

Die folgenden Attribute sind optional, werden aber dringend empfohlen, um die Vorteile von Event Notifications voll auszuschöpfen.

time (Zeitmarke)

Die UTC-Zeitmarke, zu der das Ereignis aufgetreten ist. Muss im RFC 3339-Format vorliegen.

Beispiel
time: 2022-02-10T10:51:37+00:00
Header für Binärmodus
ce-time: 2022-02-10T10:51:37+00:00

subject (Zeichenfolge)

Dies ist das Subjekt des Ereignisses im Ereignisproduzenten (Quelle). Dies kann also die Konto-ID des Kennworts sein, das bald abläuft.

Beispiel
subject:ajay@accts.acmebank.com`
Header für Binärmodus
`ce-subject:ajay@accts.acmebank.com`

datacontenttype

Definiert den MIME-Typ des Dateninhalts. Derzeit wird nur "application/json" unterstützt.

Beispiel
`datacontenttype: application/json`
Header für Binärmodus
`Content-Type:application/json`

Daten

Die Nutzdaten des Ereignisses. Dieses Attribut kann Informationen enthalten, die an Ziele wie Webhooks übergeben werden können. Dies muss ein gültiges JSON-Objekt sein.

Enthalten Sie keine vertraulichen Informationen wie Kennwörter, API-Schlüssel, persönliche Identifikationsnummern, Kreditkarteninformationen oder andere vertrauliche Daten in der Nutzlast. Die Nutzdaten können protokolliert, gespeichert oder an verschiedene Ziele übertragen werden.

Beispiel
data: { "lastchanged-days": "74", "reason":"time-based"}

Binärmodus - dieser ist Teil des HTTP body N/A.

Obligatorische Attribute der Event Notifications-Erweiterung

Dies sind obligatorische Attribute für jedes an Event Notifications gesendete Ereignis.

ibmensourceid (Zeichenfolge)

Dies ist die ID der Quelle, die in Event Notifications erstellt wird. Diese ist auf der Benutzeroberfläche Event Notifications im Abschnitt "Quellen" verfügbar.

Beispiel
ibmensourceid: 121313123:api
Header für Binärmodus
ce-ibmensourceid: 121313123:api

Optionale Attribute der Event Notifications-Erweiterung

Hierbei handelt es sich um optionale Attribute.

ibmenseverity (Zeichenfolge)

Einige Quellen können das Konzept einer Ereigniswertigkeit aufweisen. Daher gibt es eine praktische Möglichkeit zur Angabe einer Ereigniswertigkeit.

Beispiel
ibmenseverity:LOW
Header für Binärmodus
`ce-ibmenseverity:LOW`

ibmendefaultshort (Zeichenfolge)

Diese Meldung wird verwendet, wenn das Ereignis an ein Ziel weitergeleitet wird, das einen menschenlesbaren Text benötigt, aber kein zielspezifisches Attribut angegeben ist.

Wenn z. B. ibmenfcmbody nicht angegeben ist und das Ereignis an ein Ziel vom Typ Android FCM weitergeleitet wird, wird ibmendefaultshort als Titel der Benachrichtigung (android_title) verwendet.

Beispiel
ibmendefaultshort: "Change password"
Header für Binärmodus
ce-ibmendefaultshort: "Change password"

ibmendefaultlong (Zeichenfolge)

Diese Meldung wird verwendet, wenn das Ereignis an ein Ziel weitergeleitet wird, das einen menschenlesbaren Text benötigt, aber kein zielspezifisches Attribut angegeben ist.

Wenn z. B. ibmenfcmbody nicht angegeben ist und das Ereignis an ein Ziel vom Typ Android FCM weitergeleitet wird, wird ibmendefaultlong als Benachrichtigungskörper (Alarm) verwendet.

Beispiel
ibmendefaultlong: "Password will expire in 10 Days. Please log in to the Bank home page and click on Change Password link to change your password."
Header für Binärmodus
ce-ibmendefaultlong: "Password will expire in 10 Days. Please log in to the Bank home page and click on Change Password link to change your password."

ibmenfcmbody (Zeichenfolge/JSON)

Dieses Attribut ist erforderlich, wenn Sie Push-Benachrichtigungen an ein Android-Gerät senden möchten. Dies ist der Körper, den Sie an den FCM-Server senden möchten. Es muss sich um JSON im String-Format handeln. Weitere Informationen zur FCM-Körperschaft finden Sie hier.

Beispiel für die Nutzlast einer Benachrichtigung
"ibmenfcmbody": "{\"message\":{\"android\":{\"ttl\":\"86400s\",\"notification\":{\"click_action\":\"OPEN_ACTIVITY_1\"},\"data\":{\"id\":\"test_id\"}}}}"
Header für Binärmodus
ce-ibmenfcmbody: {"message":{"android":{"ttl":"86400s","notification":{"click_action":"OPEN_ACTIVITY_1"},"data":{"id":"test_id"}}}}

ibmenapnsbody (Zeichenfolge/JSON)

Dieses Attribut ist erforderlich, wenn Sie Push-Benachrichtigungen an ein iOS-Gerät senden möchten. Dies ist der Body, den Sie an den APN-Server senden möchten. Es muss sich um JSON im String-Format handeln. Weitere Informationen zu APNs body finden Sie in dieser Dokumentation.

Beispiel für die Nutzlast einer Benachrichtigung
"ibmenapnsbody": {"aps":{"alert":{"title":"Game Request","subtitle":"Five Card Draw","body":"Bob wants to play poker"},"category":"GAME_INVITATION"},"gameID":"12345678"}

Um Ihre APNs-Push-Benachrichtigungen anzupassen, können Sie APNs-Kopfzeilen bereitstellen. Einige von ihnen sind für die Zustellung einer Benachrichtigung obligatorisch, wenn ein Schlüssel vorhanden ist. Der erforderliche Hauptteil sieht wie folgt aus:

ce-ibmenapnsbody: {"aps":{"alert":{"title":"Game Request","subtitle":"Five Card Draw","body":"Bob wants to play poker"},"category":"GAME_INVITATION"},"gameID":"12345678"}

Weitere Einzelheiten zu den APN-Kopfzeilen finden Sie unter Generierung einer Fernbenachrichtigung.

Header für Binärmodus
ce-ibmenapnsbody: {"en_data":{"alert":"alert","url":"https","badge":9,"sound":"bingbong.aiff","payload":{"myaarray":["cc75e4a6-edd8-3bec-a7c3-dfca6572a03b"]},"type":"DEFAULT","subtitle":"dummy","title":"dummy1","body":"body","ios_action_key":"key","interactive_category":"interactiveCategory","title_loc_key":"titleLocKey","loc_key":"GAME_PLAY_REQUEST_FORMAT","launch_image":"image.png","title_loc_args":["Shelly","Rick"],"loc_args":["Shelly","Rick"],"attachment_url":"some url","apns_collapse_id":"12","apns_thread_id":"1","apns_group_summary_arg":"apnsGroupSummaryArg","apns_group_summary_arg_count":1}}

ibmenchromebody (Zeichenfolge/JSON)

Dieses Attribut wird benötigt, wenn Sie eine Push-Benachrichtigung an ein Chrome-Gerät senden möchten. Dies ist der Körper, den Sie an den FCM-Server senden möchten. Es muss sich um JSON im String-Format handeln. Weitere Informationen zum Chromkörper finden Sie unter Benachrichtigung.

Sie können diese Beispiele für einen schnellen Start befolgen:

"ibmenchromebody": "{\"title\":\"Hello Chrome\", \"options\": {}}"

Um Ihre Chrome-Push-Benachrichtigungen anzupassen, können Sie Chrome-Header bereitstellen. Einige von ihnen sind für die Zustellung einer Benachrichtigung obligatorisch, wenn ein Schlüssel vorhanden ist. Der Beispielhauptteil sieht wie folgt aus:

"ibmenchromeheaders":"{\"TTL\":100}"
Header für Binärmodus
ce-ibmenchromebody: {"title":"Hello Chrome", "options": {}}
ce-ibmenchromeheaders: "{"TTL":100}"

ibmenfirefoxbody (Zeichenfolge/JSON)

Dieses Attribut wird benötigt, wenn Sie eine Push-Benachrichtigung an ein Firefox Gerät senden möchten. Dies ist der Body, den Sie an den Firefox Push-Server senden möchten. Es muss sich um JSON im String-Format handeln. Weitere Informationen über die Stelle Firefox finden Sie unter Notifizierung.

Sie können diese Beispiele für einen schnellen Start befolgen:

"ibmenfirefoxbody": "{\"title\":\"Hello Firefox\", \"options\": {}}"

Um Ihre Chrome-Push-Benachrichtigungen anzupassen, können Sie Firefox Kopfzeilen bereitstellen. Einige von ihnen sind für die Zustellung einer Benachrichtigung obligatorisch, wenn ein Schlüssel vorhanden ist. Der Beispielhauptteil sieht wie folgt aus:

"ibmenfirefoxheaders": "{\"TTL\":100, \"Urgency\": \"low\" , \"Topic\": \"Test Firefox Notifications\"}",
Header für Binärmodus
ce-ibmenfirefoxbody: {"title":"Hello Firefox", "options": {}}
ce-ibmenfirefoxheaders: {"TTL":100, "Urgency": "low" , "Topic": "Test Firefox Notifications"}

ibmensafaribody (Zeichenfolge/JSON)

Dieses Attribut wird benötigt, wenn Sie eine Push-Benachrichtigung an ein Safari-Gerät senden möchten. Dies ist der Body, den Sie an den Apple Push Notification Server senden möchten. Es muss sich um JSON im String-Format handeln. Weitere Informationen über den Safari-Body finden Sie unter Konfigurieren von Safari-Push-Benachrichtigungen.

Sie können diese Beispiele für einen schnellen Start befolgen:

"ibmensafaribody": "{\"aps\":{\"alert\":{\"title\":\"Shipment Order 1832128321 Delevered\",\"body\":\"Shipment Order 1832128321 Delevered.\",\"action\":\"View\"},\"url-args\":[\"1832128321\"]}}"
Header für Binärmodus
ce-ibmensafaribody: {"aps":{"alert":{"title":"Shipment Order 1832128321 Delevered","body":"Shipment Order 1832128321 Delevered.","action":"View"},"url-args":["1832128321"]}}

ibmenhuaweibody(string/json)

Dieses Attribut wird benötigt, wenn Sie eine Push-Benachrichtigung an ein Huawei-Gerät senden möchten. Dies ist der Body, den Sie an den Huawei-Push-Kit-Server senden möchten. Es muss sich um JSON im String-Format handeln. Weitere Informationen zum Huawei-Gehäuse finden Sie unter Huawei Push Notification Payload.

Sie können diese Beispiele für einen schnellen Start befolgen:

"ibmenhuaweibody":"{\"message\":{\"android\":{\"notification\":{\"title\":\"New Message\",\"body\":\"Hello World\",\"click_action\":{\"type\":3}}}}}"
Header für Binärmodus
ce-ibmenhuaweibody: {"aps":{"alert":{"title":"Shipment Order 1832128321 Delevered","body":"Shipment Order 1832128321 Delevered.","action":"View"},"url-args":["1832128321"]}}

ibmenpushto (Zeichenfolge/JSON)

Dieses Attribut ist für die erfolgreiche Zustellung an ein Android-, FCM-, APNS- oder Huawei-Ziel obligatorisch.

Hier finden Sie Angaben zu dem Ziel, an das Sie eine Push-Benachrichtigung senden möchten. Dieses Feld ist ebenfalls das String-Format von JSON und enthält außerdem das folgende Feld

  • user_id- Benutzerkennung, die mit dem Gerät verknüpft werden soll. auf das Sie Ihre Benachrichtigung ausrichten möchten
  • tag – Wird verwendet, um Benachrichtigungen über registrierte Tags zu senden.
  • platform- Sie können alle registrierten Geräte nach Plattformen ausrichten.

Nachfolgend finden Sie die entsprechenden Plattformwerte für die einzelnen Zieltypen.

  • FCM: push_android
  • APNS: push_ios
  • Chrome: push_chrome
  • Firefox: push_firefox
  • Safari: push_safari
  • Huawei: push_huawei
  • fcm_devices – Eindeutige ID des FCM-Geräts, das Ziel Ihrer Benachrichtigung sein soll.
  • apns_devices – Eindeutige ID des APNs-Geräts, das Ziel Ihrer Benachrichtigung sein soll.
  • chrome_devices – Eindeutige ID des Chrome-Webgeräts, das Ziel Ihrer Benachrichtigung sein soll.
  • firefox_devices – Eindeutige ID des Firefox-Webgeräts, das Ziel Ihrer Benachrichtigung sein soll.
  • safari_devices – Eindeutige ID des Safari-Webgeräts, das Ziel Ihrer Benachrichtigung sein soll.
  • huawei_devices- Eindeutige Kennung des Huawei-Webgeräts, an das Sie Ihre Benachrichtigung richten möchten
Beispiel
"ibmenpushto": "{\"fcm_devices\": [\"9c75975a-37d0-3898-905d-3b5ee0d7c172\",\"C9CACDF5-6EBF-49E1-AD60-E25BA23E954C\"]}"`
"ibmenpushto": "{\"apns_devices\": [\"1c75972a-37d0-3898-905d-3b5ee0d7c172\",\"M9CACDF5-1EBF-49E1-AD60-E25BA23E954C\"]}"
"ibmenpushto": "{\"chrome_devices\": [\"2c75972a-37d0-3898-905d-3b5ee0d7c182\",\"N9CACDF5-1EBF-49E1-AD60-E25BA23E994D\"]}"
"ibmenpushto": "{\"firefox_devices\": [\"3c75972a-37d0-3898-905d-3b5ee0d7c182\",\"L9CACDF5-1EBF-49E1-AD60-E25BA23E994E\"]}"
"ibmenpushto": "{\"safari_devices\": [\"1175972a-37d0-3898-905d-3b5ee0d7c1D2\",\"Q9CACDF5-1EBF-49E1-AD60-E25BA23E994N\"]}"
"ibmenpushto": "{\"huawei_devices\": [\"1175972a-37d0-3898-905d-3b5ee0d7c1D2\",\"Q9CACDF5-1EBF-49E1-AD60-E25BA23E994N\"]}"

Mehrere Ziele können mit den folgenden Methoden anvisiert werden

"ibmenpushto": "{\"fcm_devices\": [\"9c75975a-37d0-3898-905d-3b5ee0d7c172\",\"C9CACDF5-6EBF-49E1-AD60-E25BA23E954C\"],\"apns_devices\": [\"1c75972a-37d0-3898-905d-3b5ee0d7c172\",\"M9CACDF5-1EBF-49E1-AD60-E25BA23E954C\"],\"chrome_devices\": [\"2c75972a-37d0-3898-905d-3b5ee0d7c182\",\"N9CACDF5-1EBF-49E1-AD60-E25BA23E994D\"],\"firefox_devices\": [\"3c75972a-37d0-3898-905d-3b5ee0d7c182\",\"L9CACDF5-1EBF-49E1-AD60-E25BA23E994E\"],\"safari_devices\": [\"1175972a-37d0-3898-905d-3b5ee0d7c1D2\",\"Q9CACDF5-1EBF-49E1-AD60-E25BA23E994N\"]}"

Push-Benutzer-IDs als Ziel für Benachrichtigungen angeben.

"ibmenpushto": "{\"user_ids\": [\"ajay@accts.acmebank.com\",\"ankit@accts.acmebank.com\"]}"

Push-Tags als Ziel für Benachrichtigungen angeben.

"ibmenpushto": "{\"tags\": [\"salesTeam\",\"TechTeam\"]}"

Plattformen als Ziel für Benachrichtigungen angeben.

"ibmenpushto": "{\"platforms\":[\"push_android\",\"push_ios\"]]}"

Ausrichtung von Benachrichtigungen auf eine bestimmte Plattform.

"ibmenpushto": "{\"platforms\":[\"push_android\"]}"
"ibmenpushto": "{\"platforms\":[\"push_ios\"]}"
"ibmenpushto": "{\"platforms\":[\"push_chrome\"]}"
"ibmenpushto": "{\"platforms\":[\"push_firefox\"]}"
"ibmenpushto": "{\"platforms\":[\"push_safari\"]}"
"ibmenpushto": "{\"platforms\":[\"push_huawei\"]}"
Header für Binärmodus
ce-ibmenpushto: "{\"user_id\": [\"ajay@accts.acmebank.com\",\"ankit@accts.acmebank.com\"]}"

anhänge(array)

Dieses Attribut wird verwendet, um Dateianhänge beim Senden von Benachrichtigungen an benutzerdefinierte Domänen-E-Mail-Ziele einzuschließen. Jeder Anhang im Array muss den im Format Base64 kodierten Dateiinhalt zusammen mit Metadaten wie Dateiname, Inhaltstyp und Anordnung enthalten.

E-Mail-Anhänge werden nur für benutzerdefinierte Domänen-E-Mail-Ziele unterstützt. Diese Funktion ist für die Standard-E-Mail-Ziele IBM Cloud nicht verfügbar.

Das Array attachments enthält Objekte mit den folgenden Eigenschaften:

content (string, erforderlich)

Der Inhalt der Datei ist im Format base64 kodiert.

Stellen Sie sicher, dass der Inhalt ordnungsgemäß kodiert ist, bevor Sie ihn in die Nutzlast aufnehmen.

filename (String, erforderlich)

Der Name der Datei, wie er für den Empfänger erscheinen wird. Geben Sie die Dateierweiterung an (z. B. " document.pdf ", " report.xlsx ").

content_type (string, nicht erforderlich)

Der MIME-Typ der Datei. Gängige Beispiele sind:

  • application/pdf für PDF-Dateien
disposition (string, erforderlich)

Verwenden Sie attachment, um anzuzeigen, dass die Datei ein Anhang ist.

Beispiel
"attachments": [
  {
    "content": "JVBERi0xLjQKJeLjz9MKMyAwIG9iago8PC9UeXBlL...",
    "filename": "document.pdf",
    "content_type": "application/pdf",
    "disposition": "attachment"
  },
  {
    "content": "UEsDBBQAAAAIAKt8elYAAAAAAAAAAAAAAAAJAAAA...",
    "filename": "report.xlsx",
    "content_type": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
    "disposition": "attachment"
  }
]
Header für Binärmodus
ce-attachments: [{"content":"JVBERi0xLjQKJeLjz9MKMyAwIG9iago8PC9UeXBlL...","filename":"document.pdf","content_type":"application/pdf","disposition":"attachment"}]
Hinweise zur Verwendung
  • Für Anhänge gelten Größenbeschränkungen. Achten Sie darauf, dass die Gesamtgröße der Nutzlast (einschließlich aller Anhänge) 40 MB nicht überschreitet.
  • Sie können bis zu 10 Dateien pro E-Mail-Benachrichtigung anhängen.
  • Der gesamte Dateiinhalt muss vor der Aufnahme in die Nutzlast mit base64 kodiert werden.
  • Mehrere Anhänge können in eine einzige Benachrichtigung aufgenommen werden, indem mehrere Objekte zum Array attachments hinzugefügt werden.
  • Diese Funktion ist nur verfügbar, wenn Benachrichtigungen an benutzerdefinierte Domänen-E-Mail-Ziele gesendet werden.
  • Bestimmte Dateierweiterungen sind aus Sicherheitsgründen gesperrt. Eine vollständige Liste der blockierten Erweiterungen finden Sie unter Welche Dateierweiterungen sind für E-Mail-Anhänge blockiert?