Nachrichten an Gerätegruppen auf Apple-Plattformen senden

Bei Nachrichten an Gerätegruppen können Sie einer einzelnen Gruppe mehrere Geräte hinzufügen. Dies ähnelt dem Topic Messaging, beinhaltet jedoch eine Authentifizierung, damit die Gruppenmitgliedschaft nur von Ihren Servern verwaltet wird. Wenn Sie beispielsweise unterschiedliche Nachrichten an verschiedene Smartphone-Modelle senden möchten, können Ihre Server den entsprechenden Gruppen Registrierungen hinzufügen oder entfernen und die entsprechende Nachricht an jede Gruppe senden. Die Nachrichtenübermittlung an Gerätegruppen unterscheidet sich von der Nachrichtenübermittlung an Themen dadurch, dass Gerätegruppen von Ihren Servern aus verwaltet werden, anstatt direkt in Ihrer Anwendung.

Die maximal zulässige Anzahl von Mitgliedern für einen Benachrichtigungsschlüssel beträgt 20.

Gerätegruppen verwalten

Bevor Sie Nachrichten an eine Gerätegruppe senden, müssen Sie Folgendes tun:

  1. Rufen Sie Registrierungstokens für jedes Gerät ab, das Sie der Gruppe hinzufügen möchten.

  2. Erstellen Sie die notification_key, die die Gerätegruppe identifiziert, indem eine bestimmte Gruppe (in der Regel ein Nutzer) allen zugehörigen Registrierungstokens der Gruppe zugeordnet wird. Sie können Benachrichtigungsschlüssel auf dem App-Server erstellen.

Die grundlegende Verwaltung von Gerätegruppen, also das Erstellen und Entfernen von Gruppen sowie das Hinzufügen oder Entfernen von Geräten, erfolgt über die HTTP v1 API. Dabei werden kurzlebige Tokens zum Autorisieren von Sendeanfragen verwendet. Eine Liste der unterstützten Schlüssel finden Sie unter Schlüssel für die Gerätegruppenverwaltung.

Gerätegruppen auf dem App-Server verwalten

Gerätegruppe erstellen

Wenn Sie eine Gerätegruppe erstellen möchten, senden Sie eine POST-Anfrage mit einem Namen für die Gruppe und einer Liste der Registrierungstokens für die Geräte. FCM gibt eine neue notification_key zurück, die die Gerätegruppe darstellt.

HTTP-POST-Anfrage

Senden Sie eine Anfrage wie die folgende an https://fcm.googleapis.com/fcm/notification:

https://fcm.googleapis.com/fcm/notification
Content-Type:application/json
access_token_auth: true
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
project_id:SENDER_ID

{
   "operation": "create",
   "notification_key_name": "appUser-Chris",
   "registration_ids": ["bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
                        "cR1rjyj4_Kc:APA91bGusqbypSuMdsh7jSNrW4nzsM...",
                        ... ]

notification_key_name ist ein Name oder eine Kennung (z. B. ein Nutzername), der bzw. die für eine bestimmte Gruppe eindeutig ist. notification_key_name und notification_key sind für eine Gruppe von Registrierungstokens eindeutig. notification_key_name muss für jede Clientanwendung eindeutig sein, wenn mehrere Clientanwendungen für dieselbe Absender-ID vorhanden sind. So wird sichergestellt, dass Nachrichten nur an die gewünschte Ziel-App gesendet werden.

Antwortformat

Bei einer erfolgreichen Anfrage wird eine notification_key wie die folgende zurückgegeben:

{
   "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ"
}

Speichern Sie notification_key und die entsprechende notification_key_name für die nachfolgenden Vorgänge.

Benachrichtigungsschlüssel abrufen

Wenn Sie einen vorhandenen Benachrichtigungsschlüssel abrufen müssen, verwenden Sie notification_key_name in einer GET-Anfrage wie hier gezeigt:

https://fcm.googleapis.com/fcm/notification?notification_key_name=appUser-Chris
Content-Type:application/json
access_token_auth: true
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
project_id:SENDER_ID
{}

Für jede GET-Anfrage für einen bestimmten Benachrichtigungsschlüsselnamen gibt der Server einen eindeutigen codierten String zurück. Obwohl jeder String ein anderer Schlüssel zu sein scheint, ist er in Wirklichkeit ein gültiger Wert für "notification_key".

Geräte zu einer Gerätegruppe hinzufügen und daraus entfernen

Wenn Sie Geräte zu einer vorhandenen Gruppe hinzufügen oder daraus entfernen möchten, senden Sie eine POST-Anfrage, bei der der Parameter operation auf add oder remove festgelegt ist. Geben Sie die Registrierungstokens für das Hinzufügen oder Entfernen an.

HTTP-POST-Anfrage

Wenn du beispielsweise appUser-Chris ein Gerät mit dem Registrierungstoken bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1... hinzufügen möchtest, sendest du diese Anfrage:

{
   "operation": "add",
   "notification_key_name": "appUser-Chris",
   "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ",
   "registration_ids": ["bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."]
}

Antwortformat

Bei einer erfolgreichen Anfrage zum Hinzufügen oder Entfernen eines Geräts wird eine notification_key wie die folgende zurückgegeben:

{
   "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ"
}

Schlüssel zur Verwaltung von Gerätegruppen

In der folgenden Tabelle sind die Schlüssel zum Erstellen von Gerätegruppen sowie zum Hinzufügen und Entfernen von Mitgliedern aufgeführt.

Tabelle 10. Verwaltungsschlüssel für Gerätegruppen

Parameter Nutzung Beschreibung
operation Erforderlich, String Der auszuführende Vorgang. Gültige Werte sind create, add und remove.
notification_key_name Erforderlich, String Der benutzerdefinierte Name der zu erstellenden oder zu ändernden Gerätegruppe.
notification_key Erforderlich (außer für den create-Vorgang, String Die eindeutige Kennung der Gerätegruppe. Dieser Wert wird in der Antwort für einen erfolgreichen create-Vorgang zurückgegeben und ist für alle nachfolgenden Vorgänge auf der Gerätegruppe erforderlich.
registration_ids Erforderlich, Array von Strings Die Gerätetokens, die hinzugefügt oder entfernt werden sollen. Wenn Sie alle vorhandenen Registrierungstokens aus einer Gerätegruppe entfernen, löscht FCM die Gerätegruppe.

Nachrichten an Gerätegruppen senden

Verwenden Sie die HTTP v1 API, um Nachrichten an Gerätegruppen zu senden. Wenn Sie derzeit mit den veralteten Sende-APIs für HTTP oder XMPP oder mit einer der älteren Versionen der Firebase Admin SDK für Node.js, die auf den alten Protokollen basieren, an Gerätegruppen senden, empfehlen wir Ihnen dringend, so bald wie möglich zur HTTP v1 API zu migrieren. Die bisherigen Send-APIs werden im Juni 2024 deaktiviert und entfernt.

Das Senden von Nachrichten an eine Gerätegruppe ähnelt dem Senden von Nachrichten an ein einzelnes Gerät. Dabei wird dieselbe Methode verwendet, um Sendeanfragen zu autorisieren. Legen Sie für das Feld token den Schlüssel für Gruppenbenachrichtigungen fest:

REST

POST https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:send HTTP/1.1

Content-Type: application/json
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA

{
   "message":{
      "token":"APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ",
      "data":{
        "hello": "This is a Firebase Cloud Messaging device group message!"
      }
   }
}

cURL-Befehl

curl -X POST -H "Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA" -H "Content-Type: application/json" -d '{
"message":{
   "data":{
     "hello": "This is a Firebase Cloud Messaging device group message!"
   },
   "token":"APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ"
}}' https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:send

Upstream-Nachrichten an Gerätegruppen senden

Wenn Sie Upstream-Nachrichten an Gerätegruppen in Apple-Apps senden möchten, muss die Apple-Client-App FIRMessaging.sendMessage implementieren:

(void)sendMessage:(nonnull NSDictionary *)message
     to:(nonnull NSString *)receiver
withMessageID:(nonnull NSString *)messageID
timeToLive:(int64_t)ttl;