Erstellen und Senden von Push-Benachrichtigungen an Android-Handys mit Event Notifications
Sie können einen Event Notifications-Service erstellen, ein Push-Ziel für Firebase Cloud Messaging (FCM) hinzufügen und Nachrichten an Android-Geräte senden.
Was ist Event Notifications?
Event Notifications ist ein Routing-Dienst für Ereignisbenachrichtigungen, der Sie über kritische Ereignisse in Ihrem IBM Cloud benachrichtigt oder mithilfe von Webhooks automatisierte Aktionen auslöst. Sie können Ereignisbenachrichtigungen von IBM Cloud wie Availability Monitoring, E-Mail, SMS, Push-Benachrichtigungen und Webhooks filtern und weiterleiten.
Wie verwenden Clients Android-Push-Benachrichtigungen?
Das folgende Diagramm zeigt, wie Clients Android-Push-Benachrichtigungen verwenden.
Ziele
Dieses Lernprogramm zeigt im Folgenden, wie Sie Push-Benachrichtigungen senden:
- Erstellen Sie eine mobile App mit Event Notifications.
- FCM-Berechtigungsnachweise abrufen.
- Laden Sie den Code herunter und schließen Sie die Benachrichtigungskonfiguration ab.
- Konfigurieren und senden Sie Android-Push-Benachrichtigungen an ein mobiles Gerät.
Vorbereitende Schritte
Folgende Voraussetzungen müssen erfüllt sein:
- Laden Sie Android Studio herunter und installieren Sie es, damit Sie Ihren Code importieren und erweitern können.
- Ein Google-Konto zum Anmelden an der Firebase-Konsole, um
project_id
,private_key
undclient_email
abzurufen. - Ein IBM Cloud-Konto. Wenn Sie nicht über ein Konto verfügen, erstellen Sie ein IBM Cloud-Konto.
Die in diesem Dokument verwendeten Anweisungen verwenden die HTTP v1 API von FCM. Die HTTP v1 API bietet Vorteile wie sichere Zugriffstoken, effiziente Anpassungen und zukunftssichere sowie erweiterbare Client-Plattformversionen. Weitere Informationen zur Migration von der FCM Legacy HTTP API zur HTTP v1 API finden Sie unter Migration der FCM Legacy HTTP API zur HTTP v1 API.
Erstellen Sie eine Event Notifications-Serviceinstanz.
- Melden Sie sich bei Ihrem IBM Cloud an.
- Suchen Sie im IBM Cloud-Katalog und wählen Sie
Event Notifications > Event Notifications
aus. - Wählen Sie eine
Region
in der Liste der unterstützten Regionen und einepricing plan
aus. - Geben Sie eine
Service name
an. - Wählen Sie eine
resource group
aus. - Akzeptieren Sie die Lizenzvereinbarungen und Bedingungen, indem Sie auf das Kontrollkästchen klicken.
- Klicken Sie auf
Create
.
FCM-Berechtigungsnachweise abrufen
Firebase Cloud Messaging (FCM) ist das Gateway, das Push-Benachrichtigungen an Android-Geräte übermittelt. Um das Android-Push-Ziel auf der Konsole einzurichten, müssen Sie Ihre FCM-Zugangsdaten ' project_id
, ' private_key
und ' client_email
erhalten.
-
Rufen Sie Firebase-Konsole auf. Eine Google-Benutzerkonto ist erforderlich.
-
Klicken Sie auf
Create a project
. Wenn Sie bereits über ein Projekt verfügen, klicken Sie aufAdd Project
. -
Geben Sie im
Create a project window
einen Projektnamen ein und akzeptieren Sie die Bedingungen und aktivieren oder inaktivieren Sie Google Analytics (optional), indem Sie den Kippschalter auswählen und aufContinue
klicken. -
Wenn Google Analytics aktiviert ist, wählen Sie im Fenster
Configure Google Analytics
die OptionAnalytics location
aus und akzeptieren Sie die Bedingungen. -
Klicken Sie auf
Create Project
. -
Klicken Sie auf
Continue
, wenn das neue Projekt bereit ist. -
Wählen Sie im Navigationsfenster das Symbol
settings
nebenProject Overview
aus und wählen SieSettings > Project settings
aus. -
Klicken Sie auf die Registerkarte "
Service Accounts
.FCM credentials -
Klicken Sie auf Neuen privaten Schlüssel generieren, um Ihre Projektberechtigungsnachweise zu generieren. Die heruntergeladene Datei enthält
project_id
,private_key
undclient_email
.
Generieren Sie google-services.json
Außerdem müssen Sie die Datei google-services.json
generieren. Führen Sie die folgenden Schritte aus:
-
Klicken Sie im Abschnitt "Projektübersicht" der Firebase-Konsole unter
Get started by adding Firebase to your app
auf das SymbolAndroid
.wird -
Fügen Sie im Fenster
Add Firebase to your Android app
com.ibm.cloud.eventnotifications.destination.android
als Paketnamen hinzu. Das FeldApp nickname
ist optional. -
Klicken Sie auf Register APP (App registrieren).
Add Firebase to your Android app -
Geben Sie den Paketnamen Ihrer Anwendung an. Geben Sie den Paketnamen im Fenster
Add Firebase to your Android app
ein. Das FeldApp nickname
ist optional. -
Klicken Sie auf Register APP (App registrieren). Sehen Sie sich das folgende Beispiel an:
caption-side=bottom" -
Die Datei
google-services.json
wird generiert. -
Laden Sie die neueste Konfigurationsdatei
google-services.json
unter Ihren Apps herunter.
Generische API-Quelle hinzufügen
Führen Sie die folgenden Schritte aus:
- Wechseln Sie zum Abschnitt
Sources
des Event Notifications-Dashboards. - Klicken Sie auf
Add
und wählen Sie eine API-Quelle aus. - Geben Sie einen Namen und eine optionale Beschreibung ein und klicken Sie auf
Add
.
Ein neues Event Notifications-Ziel erstellen
Klicken Sie in der Event Notifications-Konsole auf Destinations
und fügen Sie die folgenden Zieldetails hinzu:
Name
: Fügen Sie einen Namen für das Ziel hinzu.Description
: Fügen Sie eine optionale Beschreibung für das Ziel hinzu.Type
: Wählen Sie den Typ "Android Push Notifications (FCM)
aus der Dropdown-Liste.- Wählen Sie einen Zielplan aus: Vorproduktionsziel oder Produktionsziel.
Pre-production destination
-Wählen Sie dieses Ziel als kostengünstiges Push-Ziel für Ihre Entwicklungs-und Testumgebung aus.Production destination
-Nutzen Sie die volle Funktionalität dieses Ziels. Unbegrenzt viele Geräte und ausgehende Nachrichten erlaubt.
- Aktualisieren Sie die FCM-Push-Berechtigungsnachweise mit
project_id
,private_key
undclient_email
aus der zuvor heruntergeladenen Datei. - Klicken Sie auf Hinzufügen.
Event Notifications-Thema erstellen
Wählen Sie Topics
in der Event Notifications-Konsole aus und klicken Sie auf Create
. Geben Sie die folgenden Themendetails ein:
Name
: Geben Sie einen Namen für das Thema ein.Description
: Fügen Sie eine optionale Beschreibung für das Thema hinzu.Source
: Wählen Sie eine Quelle aus der Dropdown-Liste aus.Event type
: Wählen Sie in der Dropdown-Liste den Ereignistyp aus.Event sub type
: Wählen Sie den untergeordneten Ereignistyp aus der Dropdown-Liste der untergeordneten Ereignistypen aus.Severity
: Wählen Sie in der Dropdown-Liste den Schweregrad aus.Advanced conditions
: Schreiben Sie Ihre eigenen angepassten Bedingungen, die den jsonpath-Spezifikationen entsprechen müssen.
Event Notifications-Subskription erstellen
Klicken Sie in der Event Notifications-Konsole auf Subscriptions
. Geben Sie die folgenden Abonnementdetails ein:
- Klicken Sie auf
Click
, um den Subskriptionsassistenten anzuzeigen. - Vervollständigen Sie die folgenden Abonnementdetails:
Subscription name
: Name des Abonnements.Subscription description
: Fügen Sie eine optionale Beschreibung hinzu.
- Wählen Sie im Abschnitt
Subscribe to a topic
ein Thema aus der Dropdown-Liste aus und wählen Sie ein Ziel aus der Dropdown-Liste aus. Destination type
: Wählen Sie den Typ unterDestination
aus und klicken auf Hinzufügen.
Event Notifications Android SDK einrichten
Android SDK ermöglicht Android-Apps den Empfang von Push-Benachrichtigungen. Führen Sie die folgenden Schritte aus, um Event Notifications Android SDK zu installieren, das SDK zu initialisieren und Benachrichtigungen für Ihre Android-App zu registrieren.
-
Installieren Sie Event Notifications mit Gradle.
compile 'com.ibm.cloud:eventnotifications-destination-android:0.0.1'
-
Folgen Sie event-notifications-ziel-android-sdk, um das SDK zu installieren.
-
Wenn Gradle installiert ist, importieren und initialisieren Sie das SDK.
import com.ibm.cloud.eventnotifications.destination.android.ENPush; String instanceGUID = "<instance_guid>>"; String destinationID = "<instance_destination_id>"; String apiKey = "<instance_apikey>"; ENPush enPush = ENPush.getInstance(); enPush.setCloudRegion(ENPush.REGION_US_SOUTH); // Set your region enPush.initialize(getApplicationContext(),instanceGUID,destinationID, apiKey);
-
Wenn das SDK initialisiert wurde, registrieren Sie sich für Push-Benachrichtigungen.
// Register the device to Event Notifications enPush.registerDeviceWithUserId("userId",new ENPushResponseListener<String>() { @Override public void onSuccess(String deviceId) { //handle successful device registration here } @Override public void onFailure(ENPushException ex) { //handle failure in device registration here } });
-
Optional, wenn Sie auch Push-Tag-Abonnement erstellen können, subscribeToPushTag für Push-Gerät. Die Subscribe-API abonniert das Gerät für ein bestimmtes Tag. Nachdem das Gerät einen bestimmten Tag abonniert hat, kann das Gerät Benachrichtigungen empfangen, die für diesen Tag gesendet werden. Fügen Sie das folgende Codeschnipsel in Ihre mobile Android-Anwendung ein, um eine Liste von Tags zu abonnieren.
// Subscribe to the given tag, if tagname is not available it will first get create then push device will get subscribe to it. enPush.subscribe(tagName, new ENPushResponseListener<String>() { @Override public void onSuccess(String arg) { System.out.println("Succesfully Subscribed to: "+ arg); } @Override public void onFailure(ENPushException ex) { System.out.println("Error subscribing to Tag1.." + ex.getMessage()); } });
-
Fügen Sie den Listener für Benachrichtigungen für den Empfang der Benachrichtigung in Ihrer Anwendung hinzu.
//Handles the notification when it arrives ENPushNotificationListener notificationListener = new ENPushNotificationListener() { @Override public void onReceive (final ENSimplePushNotification message){ // Handle Push Notification } };
if(enPush != null) { enPush.listen(notificationListener); }
-
Führen Sie nach Abschluss der Konfiguration Ihre Anwendung aus und registrieren Sie sich für Push-Benachrichtigungen.
Benachrichtigungen an das Android-Gerät senden
Verwenden Sie API zum Senden von Benachrichtigungen, um die Push-Benachrichtigung für das Android-Gerät zu senden. Sie können das Knoten- oder Go-Administrator-SDK verwenden, anstatt die API direkt aufzurufen.


Migration der FCM-Legacy-HTTP-API zur HTTP v1
Anwendungen, die die FCM Legacy-HTTP-API verwenden, sollten eine Migration zur HTTP v1 anhand der Anweisungen in diesem Abschnitt in Betracht ziehen. Die HTTP v1 API bietet Vorteile wie sichere Zugriffstoken, effiziente Anpassungen und zukunftssichere sowie erweiterbare Client-Plattformversionen.
In Event Notificationskönnen Sie ein Android-Ziel unter Einhaltung der FCM-Normen erstellen. Für die alte HTTP-API haben wir Unterstützung über zwei erforderliche Parameter server_key
und sender_id
bereitgestellt. For
the v1 HTTP API, FCM introduced three new parameters: project_id
, client_email
, and private_key
. Wichtig ist hier, dass sich Legacy- und v1 gegenseitig ausschließen, was wir in Event Notifications berücksichtigt
haben.
So können Sie eine Migration von einer alten auf eine neue Konfiguration durchführen.
-
Unter Ihrer vorhandenen FCM-Android-Zielkonfiguration finden Sie
server_key
undsender_id
. Jetzt müssen Sie nur das vorhandene Ziel aktualisieren, indem Sieproject_id
,client_email
undprivate_key
den API-Aufruf PATCH /destinations/{id} verwenden.Vorhandene Android-Zielkonfiguration:
{ "name": "Existing android destination", "description": "Android destination with legacy parameters", "type": "push_android", "config": { "params": { "sender_id": "xxxxxx", "server_key": "xxxxxx" } } }
Neue Android-Zielkonfiguration:
{ "name": "New android destination", "description": "Android destination with V1 HTTP parameters", "type": "push_android", "config": { "params": { "project_id": "xxxxx", "private_key": "xxxxx", "client_email": "abc@xyz.pqr" } } }
Beispiele für Änderungen der FCM-Nutzdaten
-
FCM Legacy HTTP API
{ "notification": { "title": "Incidunt qui porro sequi iste assumenda esse animi.", "body": "Minus reprehenderit ut nisi. Aut earum qui est iure eos fuga." }, "data": { "name": "Willie Greenholt", "description": "Voluptas voluptatem sed quia expedita error a at sit rerum. Numquam unde debitis incidunt qui impedit et necessitatibus. Cupiditate exercitationem enim ut laborum itaque et." } }
-
FCM HTTP v1 API
{ "message": { "android": { "notification": { "title": "Incidunt qui porro sequi iste assumenda esse animi.", "body": "Minus reprehenderit ut nisi. Aut earum qui est iure eos fuga." }, "data": { "name": "Willie Greenholt", "description": "Voluptas voluptatem sed quia expedita error a at sit rerum. Numquam unde debitis incidunt qui impedit et necessitatibus. Cupiditate exercitationem enim ut laborum itaque et." } } } }