Benachrichtigungen senden

improve this page | report issue

Übersicht

Für das Senden von Push- oder SMS-Benachrichtigungen an iOS-, Android- oder Windows-Geräte muss zunächst MobileFirst Server mit den FCM-Details für Android, einem APNS-Zertifikat für iOS oder mit WNS-Berechtigungsnachweisen für Windows 8.1 Universal / Windows 10 UWP konfiguriert werden. Anschließend können Benachrichtigungen an alle Geräte gesendet werden (Broadcast), an Geräte, die für bestimmte Tags registriert sind, an eine einzelne Geräte-ID, an Benutzer-IDs, nur an iOS-Geräte, nur an Android-Geräte, nur an Windows-Geräte oder augehend vom authentifizierten Benutzer.

Voraussetzung: Arbeiten Sie das Lernprogramm Benachrichtigungen im Überblick durch.

Fahren Sie mit folgenden Abschnitten fort:

Benachrichtigungen einrichten

Für die Aktivierung der Unterstützung für Benachrichtigungen müssen mehrere Konfigurationsschritte in MobileFirst Server und in der Clientanwendung ausgeführt werden.
Fahren Sie mit dem Abschnitt zum serverseitigen Setup fort oder lesen Sie den Abschnitt Clientseitiges Setup.

Auf der Serverseite gehören zum Setup das Konfigurieren des erforderlichen Anbieters (APNS, FCM oder WNS) und die Zuordnung des Bereichs “push.mobileclient”.

Firebase Cloud Messaging

Hinweis: Google unterstützt GCM nicht mehr und hat das Cloud-Messaging mit Firebase integriert. Wenn Sie ein GCM-Projekt verwenden, müssen Sie die GCM-Client-Apps für Android auf FCM umstellen .

Android-Geräte verwenden den Service Firebase Cloud Messaging (FCM) für Push-Benachrichtigungen.
Gehen Sie wie folgt vor, um FCM zu konfigurieren:

  1. Öffnen Sie die Firebase Console.
  2. Erstellen Sie ein neues Projekt und geben Sie einen Projektnamen an.
  3. Klicken Sie auf das Zahnradsymbol für die Einstellungen und wählen Sie Project settings aus.
  4. Klicken Sie auf das Register Cloud Messaging, um einen Server API Key und eine Sender ID zu generieren. Klicken Sie dann auf Save.

Sie können FCM auch mit der REST-API für den MobileFirst-Push-Service oder der REST-API für den MobileFirst-Verwaltungsservice konfigurieren.

Hinweise

Wenn es in Ihrer Organisation eine Firewall gibt, die den Datenverkehr zum oder vom Internet einschränkt, müssen Sie die folgenden Schritte ausführen:

  • Konfigurieren Sie die Firewall so, dass Verbindungen zu FCM möglich sind, damit Ihre FCM-Client-Apps Nachrichten empfangen können.
  • Die Ports 5228, 5229 und 5230 müssen geöffnet werden. FCM verwendet normalerweise nur den Port 5228, manchmal aber auch die Ports 5229 und 5230.
  • FCM stellt keine bestimmte IP-Adresse bereit. Stellen Sie daher sicher, dass Ihre Firewall abgehende Verbindungen zu allen IP-Adressen akzeptiert, die in den IP-Blöcken enthalten sind, die in Google ASN 15169 aufgelistet sind.
  • Stellen Sie sicher, dass Ihre Firewall am Port 443 abgehende Verbindungen von MobileFirst Server zu fcm.googleapis.com akzeptiert.

GCM-Berechtigungsnachweise hinzufügen

Apple Push Notifications Service

iOS-Geräte verwenden den Apple Push Notification Service (APNS) für Push-Benachrichtigungen.
Gehen Sie wie folgt vor, um APNS zu konfigurieren:

  1. Generieren Sie ein Zertifikat für Push-Benachrichtigungen für die Entwicklung oder Produktion. Eine ausführliche Beschreibung der Schritte finden Sie hier im Abschnitt For iOS.
  2. Wählen Sie in der MobileFirst Operations Console unter [Ihre Anwendung] → Push → Push-Einstellungen den Zertifikattyp aus und geben Sie die Zertifikatdatei und das Kennwort an. Klicken Sie dann auf Speichern.

Hinweise

  • Die folgenden Server müssen für eine MobileFirst-Server-Instanz zugänglich sein, damit Push-Benachrichtigungen gesendet werden können:
    • Sandbox-Server:
      • gateway.sandbox.push.apple.com:2195
      • feedback.sandbox.push.apple.com:2196
    • Produktionsserver:
      • gateway.push.apple.com:2195
      • Feedback.push.apple.com:2196
      • 1-courier.push.apple.com 5223
  • Verwenden Sie in der Entwicklungsphase die Sandbox-Zertifikatdatei apns-certificate-sandbox.p12.
  • Verwenden Sie in der Produktionsphase die Produktionszertifikatdatei apns-certificate-production.p12.
    • Das APNS-Produktionszertifikat kann erst getestet werden, wenn die Anwendung, die das Zertifikat verwendet, erfolgreich an den Apple App Store übergeben wurde.

Hinweis: MobileFirst bietet keine Unterstützung für universelle Zertifikate.

Sie können den APNS auch mit der REST-API für den MobileFirst-Push-Service oder der REST-API für den MobileFirst-Verwaltungsservice konfigurieren. APNS-Berechtigungsnachweise hinzufügen

Windows Push Notifications Service

Windows-Geräte verwenden den Windows Push Notifications Service (WNS) für Push-Benachrichtigungen.
Gehen Sie wie folgt vor, um den WNS zu konfigurieren:

  1. Folgen Sie den Anweisungen von Microsoft für das Generieren der Werte für Paketsicherheits-ID (SID) und Geheimer Clientschlüssel.
  2. Fügen Sie diese Werte in der MobileFirst Operations Console unter [Ihre Anwendung] → Push → Push-Einstellungen hinzu und klicken Sie auf Speichern.

Sie können den WNS auch mit der REST-API für den MobileFirst-Push-Service oder der REST-API für den MobileFirst-Verwaltungsservice konfigurieren. WNS-Berechtigungsnachweise hinzufügen

SMS-Benachrichtigungsservice

Das SMS-Gateway wird mit folgender JSON für das Senden von SMS-Benachrichtigungen eingerichtet. Verwenden Sie die REST-API smsConf, um MobileFirst Server mit der SMS-Gateway-Konfiguration zu aktualisieren.

{
	"host": "2by0.com",
	"name": "dummy",
	"port": "80",
	"programName": "gateway/add.php",
	"parameters": [{
		"name": "xmlHttp",
		"value": "false",
		"encode": "true"
	}, {
		"name": "httpsEnabled",
		"value": "false",
		"encode": "true"
	}]

}

Weitere SMS-bezogene REST-APIs finden Sie in den Referenzinformationen zur Push-Service-API.

Bereichszuordnung

Ordnen Sie der Anwendung das Bereichselement push.mobileclient zu.

  1. Laden Sie die MobileFirst Operations Console und navigieren Sie zu [Ihre Anwendung] → Sicherheit → Zuordnung von Bereichselementen und klicken Sie auf Neu.
  2. Schreiben Sie in das Feld Bereichselement den Wert “push.mobileclient”. Klicken Sie dann auf Hinzufügen.

    Bereich Beschreibung
    apps.read Berechtigung, eine Anwendungsressource zu lesen
    apps.write Berechtigung, eine Anwendungsressource zu erstellen, zu aktualisieren und zu löschen
    gcmConf.read Berechtigung, die GCM-Konfigurationseinstellungen (API Key und Sender ID) zu lesen
    gcmConf.write Berechtigung, die GCM-Konfigurationseinstellungen zu aktualisieren und zu löschen
    apnsConf.read Berechtigung, APNS-Konfigurationseinstellungen zu lesen
    apnsConf.write Berechtigung, APNS-Konfigurationseinstellungen zu aktualisieren und zu löschen
    devices.read Berechtigung, ein Gerät zu lesen
    devices.write Berechtigung, ein Gerät zu erstellen, zu aktualisieren und zu löschen
    subscriptions.read Berechtigung, Abonnements zu lesen
    subscriptions.write Berechtigung, Abonnements zu erstellen, zu aktualisieren und zu löschen
    messages.write Berechtigung, Push-Benachrichtigungen zu senden
    webhooks.read Berechtigung, Ereignisbenachrichtigungen zu lesen
    webhooks.write Berechtigung, Ereignisbenachrichtigungen zu senden
    smsConf.read Berechtigung, SMS-Konfigurationseinstellungen zu lesen
    smsConf.write Berechtigung, SMS-Konfigurationseinstellungen zu aktualisieren und zu löschen
    wnsConf.read Berechtigung, WNS-Konfigurationseinstellungen zu lesen
    wnsConf.write Berechtigung, WNS-Konfigurationseinstellungen zu aktualisieren und zu löschen

    Bereichszuordnung

Authentifizierte Benachrichtigungen

Authentifizierte Benachrichtigungen werden an userIds gesendet.

Ordnen Sie der für die Anwendung verwendeten Sicherheitsüberprüfung das Bereichselement push.mobileclient zu.

  1. Laden Sie die MobileFirst Operations Console und navigieren Sie zu [Ihre Anwendung] → Sicherheit → Zuordnung von Bereichselementen und klicken Sie auf Neu oder bearbeiten Sie einen vorhandenen Bereichszuordnungseintrag.
  2. Wählen Sie eine Sicherheitsüberprüfung aus. Klicken Sie dann auf Hinzufügen.

    Authentifizierte Benachrichtigungen

Tags definieren

Klicken Sie in der MobileFirst Operations Console unter [Ihre Anwendung] → Push → Tags auf Neu.
Geben Sie den entsprechenden Tagnamen und eine Beschreibung an und klicken Sie auf Speichern.

Tags hinzufügen

Bei einem Abonnement werden eine Geräteregistrierung und ein Tag miteinander verbunden. Wenn die Registrierung eines Gerätes für einen Tag aufgehoben wird, beendet das Gerät selbst alle zugehörigen Abonnements. Wenn ein Gerät von mehreren Benutzern verwendet wird, sollten Abonnements auf der Basis von Benutzeranmeldungskriterien in mobilen Anwendungen implementiert werden. Der Aufruf für das Abonnement könnte beispielsweise erfolgen, nachdem sich ein Benutzer erfolgreich bei einer Anwendung angemeldet hat. Der Aufruf zum Beenden des Abonnements würde explizit im Rahmen der Abmeldeaktion abgesetzt.

Benachrichtigungen senden

Push-Benachrichtigungen können von der MobileFirst Operations Console aus oder über REST-APIs gesendet werden.

  • Von der MobileFirst Operations Console aus können zwei Arten von Benachrichtigungen gesendet werden, tagbasierte Benachrichtigungen und Broadcastbenachrichtigungen.
  • Mit den REST-APIs können alle Arten von Benachrichtigungen gesendet werden, tagbasierte und authentifizierte Benachrichtigungen sowie Broadcastbenachrichtigungen.

MobileFirst Operations Console

Benachrichtigungen können an eine einzelne Geräte-ID, an bestimmte Benutzer-IDs, nur an iOS-Geräte oder nur an Android-Geräte oder an Geräte, die Tags abonniert haben, gesendet werden.

Tagbasierte Benachrichtigungen

Tagbasierte Benachrichtigungen sind Hinweisnachrichten, die an alle Geräte gesendet werden, die einen bestimmten Tag abonniert haben. Tags stehen für Themen, die für den Benutzer von Interesse sind, und ermöglichen dem Benutzer, Benachrichtigungen zu den ihn interessierenden Themen zu erhalten.

Wählen Sie in der MobileFirst Operations Console unter [Ihre Anwendung] → Push das Register Benachrichtigungen senden aus. Wählen Sie dann auf der Registerkarte Senden an die Option Geräte nach Tags aus und geben Sie den Benachrichtigungstext an. Klicken Sie dann auf Senden.

Senden nach Tag

Broadcastbenachrichtigungen

Broadcastbenachrichtigungen sind eine Form der tagbasierten Push-Benachrichtigungen, die an alle eingeschriebenen Geräte gesendet werden. Broadcastbenachrichtigungen werden standardmäßig für alle Push-fähigen MobileFirst-Anwendungen durch das Abonnement eines reservierten Tags Push.all aktiviert. (Der Tag wird automatisch für jedes Gerät erstellt.) Das Abonnement des Tags Push.all kann programmgestützt beendet werden.

Wählen Sie in der MobileFirst Operations Console unter [Ihre Anwendung] → Push das Register Benachrichtigung senden aus. Wählen Sie dann auf der Registerkarte Senden an die Option Alle aus und geben Sie den Benachrichtigungstext an. Klicken Sie dann auf Senden.

Senden an alle

REST-APIs

Mit den REST-APIs können alle Arten von Benachrichtigungen gesendet werden, tagbasierte Benachrichtigungen und Broadcastbenachrichtigungen sowie authentifizierte Benachrichtigungen.

Für das Senden einer Benachrichtigung wird eine POST-Anforderung an den REST-Endpunkt abgesetzt: imfpush/v1/apps/<Anwendungs-ID>/messages.
Beispiel-URL:

https://myserver.com:443/imfpush/v1/apps/com.sample.PinCodeSwift/messages

Eine Übersicht über alle REST-APIs für Push-Benachrichtigungen finden Sie im Abschnitt REST-API-Laufzeitservices der Benutzerdokumentation.

Nutzdaten von Benachrichtigungen

Die Anforderung kann die folgenden Nutzdateneigenschaften enthalten:

Eigenschaften der Nutzdaten Definition
  message Die zu sendende Alertnachricht
  settings Die Einstellungen sind verschiedene Attribute der Benachrichtigung.
  target Ziele können Consumer-IDs, Geräte, Plattformen oder Tags sein. Es kann nur ein Ziel festgelegt werden.
  deviceIds Array der Geräte, die durch die Gerätekennungen repräsentiert werden. Geräte mit diesen IDs empfangen eine Unicastbeanchrichtigung.
  notificationType Ganzzahliger Wert für den Kanal (Push/SMS), über den die Nachricht gesendet wird. Gültige Werte sind 1 (nur Push), 2 (nur SMS) und 3 (Push und SMS).
  platforms Array der Geräteplattformen. Geräte mit diesen Plattformen empfangen die Benachrichtigung. Unterstützte Werte sind A (Apple/iOS), G (Google/Android) und M (Microsoft/Windows).
  tagNames Array mit Tags, die als Tagnamen angegeben sind. Geräte, die diese Tags abonniert haben, empfangen die Benachrichtigung. Verwenden Sie diese Einstellung für “target” für tagbasierte Benachrichtigungen.
  userIds Array mit Benutzern, repräsentiert durch die Benutzer-IDs, an die eine Unicastbenachrichtigung gesendet wird.
  phoneNumber Telefonnummer für die Registrierung des Geräts und den Empfang von Unicastbenachrichtigungen.

JSON-Beispiel für die Nutzdaten von Push-Benachrichtigungen

{
    "message" : {
    "alert" : "Test message",
  },
  "settings" : {
    "apns" : {
      "badge" : 1,
      "iosActionKey" : "Ok",
      "payload" : "",
      "sound" : "song.mp3",
      "type" : "SILENT",
    },
    "gcm" : {
      "delayWhileIdle" : ,
      "payload" : "",
      "sound" : "song.mp3",
      "timeToLive" : ,
    },
  },
  "target" : {
    // Die folgende Liste dient nur zur Demonstration. Gemäß Dokumentation ist immer nur jeweils 1 Ziel erlaubt.
    "deviceIds" : [ "MyDeviceId1", ... ],
    "platforms" : [ "A,G", ... ],
    "tagNames" : [ "Gold", ... ],
    "userIds" : [ "MyUserId", ... ],
  },
}

JSON-Beispiel für die Nutzdaten von SMS-Benachrichtigungen

{
  "message": {
    "alert": "Hello World from an SMS message"
  },
  "notificationType":3,
   "target" : {
     "deviceIds" : ["38cc1c62-03bb-36d8-be8e-af165e671cf4"]
   }
}

Benachrichtigung senden

Die Benachrichtigung kann mit verschiedenen Tools gesendet werden.
Nachfolgend wird für Testzwecke Postman verwendet.

  1. Konfigurieren Sie einen vertraulichen Client.

Wenn Sie eine Push-Benachrichtigung über die REST-API senden, werden die jeweils durch ein Leerzeichen getrennten Bereichselemente messages.write und push.application.<Anwendungs-ID> verwendet.

<img class="gifplayer" alt="Vertraulichen Client konfigurieren" src="push-confidential-client.png"/>
  1. Erstellen Sie ein Zugriffstoken.

  2. Setzen Sie eine POST-Anforderung an http://localhost:9080/imfpush/v1/apps/com.sample.PushNotificationsAndroid/messages ab.
    • Wenn Sie MobileFirst über Fernzugriff verwenden, ersetzen Sie Hostnamen und Port durch Ihre eigenen Werte.
    • Aktualisieren Sie die Anwendungs-ID. Geben Sie Ihren eigenen Wert an.
  3. Legen Sie einen Header fest:
    • Authorization: Bearer eyJhbGciOiJSUzI1NiIsImp ...
    • Ersetzen Sie den Wert hinter “Bearer” durch den Wert Ihres Zugriffstokens aus Schritt (1).

    Autorisierungsheader

  4. Legen Sie einen Hauptteil fest:
    • Aktualisieren Sie die Eigenschaften gemäß der Beschreibung im obigen Abschnitt Nutzdaten von Benachrichtigungen.
    • Fügen Sie beispielsweise die Eigenschaft target mit dem Attribut userIds hinzu, wenn Sie eine Benachrichtigung an bestimmte registrierte Benutzer senden möchten.
    {
         "message" : {
             "alert" : "Hello World!"
         }
    }
    

    Autorisierungsheader

Wenn Sie auf die Schaltfläche Senden geklickt haben, müsste das Gerät eine Benachrichtigung empfangen haben:

Beispielanwendung

Benachrichtigungen anpassen

Vor dem Senden der Benachrichtigung können Sie die folgenden Benachrichtigungsattribute anpassen.

Blenden Sie in der MobileFirst Operations Console unter [Ihre Anwendung] → Push → Tags auf der Registerkarte Benachrichtigungen senden den Abschnitt Angepasste iOS/Android-Einstellungen ein, um die Benachrichtigungsattribute zu ändern.

Android

  • Benachrichtigungsklang, Dauer der Aufbewahrung einer Benachrichtigung im FCM-Speicher, angepasste Nutzdaten usw.
  • Wenn Sie den Benachrichtigungstitel ändern möchten, fügen Sie zur Datei strings.xml des Android-Projekts push_notification_tile hinzu.

iOS

  • Benachrichtigungsklang, angepasste Nutzdaten, Titel für Aktionsschlüssel, Benachrichtigungstyp und Kennzeichnungsnummer

Push-Benachrichtigungen anpassen

HTTP/2-Unterstützung für APNS-Push-Benachrichtigungen

Der Apple Push Notification Service (APNS) unterstützt ein neues, API-basiertes HTTP/2-Netzprotokoll. Die Unterstützung für HTTP/2 bringt viele Vorteile mit sich, zu denen unter anderem folgende gehören:

  • Die Nachrichtenlänge erhöht sich von 2 KB auf 4 KB, sodass es in Benachrichtigungen mehr Inhalt geben kann.
  • Zwischen Client und Server sind nicht mehr mehrere Verbindungen notwendig, sodass sich der Durchsatz verbessert.
  • Für universelle Push-Benachrichtigungen werden Client-SSL-Zertifikate unterstützt.

MobileFirst bietet jetzt neben der Unterstützung für traditionelle, auf TCP-Sockets basierende Benachrichtigungen auch Unterstützung für auf HTTP/2 basierende APNS-Push-Benachrichtigungen.

HTTP/2 aktivieren

HTTP/2-basierte Benachrichtigungen können über eine JNDI-Eigenschaft aktiviert werden.

<jndiEntry jndiName="imfpush/mfp.push.apns.http2.enabled" value= "true"/>

Hinweis: Wenn die obige JNDI-Eigenschaft hinzugefügt wird, werden keine traditionellen, auf TCP-Sockets basierenden Benachrichtungen verwendet, sondern nur die HTTP/2-basierten Benachrichtigungen.

Proxyunterstützung für HTTP/2

HTTP/2-basierte Benachrichtigungen können über einen HTTP-Proxy gesendet werden. Informationen zur Weiterleitung der Benachrichtigungen über einen Proxy finden Sie hier.

Proxyunterstützung

In den Proxy-Einstellungen können Sie den optionalen Proxy festlegen, über den Benachrichtigungen an Android- und iOS-Geräte gesendet werden. Verwenden Sie die Konfigurationseigenschaften push.apns.proxy. und push.gcm.proxy., um den Proxy festzulegen. Weitere Informationen finden Sie in der Liste der JNDI-Eigenschaften für den MobileFirst-Server-Push-Service.

Nächste Lernprogramme

Da die Serverseite jetzt eingerichtet ist, fahren Sie mit dem clientseitigen Setup und der Handhabung empfangener Benachrichtigungen fort.

Inclusive terminology note: The Mobile First Platform team is making changes to support the IBM® initiative to replace racially biased and other discriminatory language in our code and content with more inclusive language. While IBM values the use of inclusive language, terms that are outside of IBM's direct influence are sometimes required for the sake of maintaining user understanding. As other industry leaders join IBM in embracing the use of inclusive language, IBM will continue to update the documentation to reflect those changes.
Last modified on May 13, 2020