Nachrichten an Gerätegruppen senden

Mit der Gerätegruppen-Messaging-Funktion können Sie einer einzelnen Gruppe mehrere Geräte hinzufügen. Dies ähnelt dem Thema-Messaging, umfasst aber die Authentifizierung, um sicherzustellen, dass die Gruppenmitgliedschaft nur von Ihren Servern verwaltet wird.

Wenn Sie beispielsweise verschiedene Nachrichten an verschiedene Smartphone-Modelle senden möchten, können Ihre Server Registrierungen zu den entsprechenden Gruppen hinzufügen oder daraus entfernen und die entsprechende Nachricht an jede Gruppe senden. Das Gerätegruppen-Messaging unterscheidet sich vom Thema-Messaging dadurch, dass Gerätegruppen von Ihren Servern aus verwaltet werden und nicht direkt in Ihrer Anwendung.

Die maximale Anzahl der Mitglieder 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. Registrierungstokens für jedes Gerät abrufen, das Sie der Gruppe hinzufügen möchten.
  2. Den notification_key erstellen, der die Gerätegruppe identifiziert, indem er eine bestimmte Gruppe (in der Regel ein Nutzer) allen zugehörigen Registrierungstokens der Gruppe zuordnet. Sie können Benachrichtigungsschlüssel auf dem App-Server erstellen.

Die grundlegende Verwaltung von Gerätegruppen – das Erstellen und Entfernen von Gruppen sowie das Hinzufügen und Entfernen von Geräten – erfolgt über die HTTP v1 API. Dabei werden kurzlebige Tokens verwendet, um Sendeanfragen zu autorisieren. Eine Liste der unterstützten Schlüssel finden Sie unter Schlüssel zur Verwaltung von Gerätegruppen.

Gerätegruppen auf dem App-Server verwalten

Gerätegruppe erstellen

Senden Sie zum Erstellen einer Gerätegruppe eine POST-Anfrage mit einem Namen für die Gruppe und einer Liste von Registrierungstokens für die Geräte. FCM gibt einen neuen notification_key zurück, der 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...",
                        ... ]
}

Der notification_key_name ist ein Name oder eine ID (z.B. ein Nutzername), der für eine bestimmte Gruppe eindeutig ist. The notification_key_name und notification_key sind für eine Gruppe von Registrierungstokens eindeutig. Es ist wichtig, dass notification_key_name pro Client-App eindeutig ist, wenn Sie mehrere Client-Apps für dieselbe Absender-ID haben. So wird sichergestellt, dass Nachrichten nur an die gewünschte Ziel-App gesendet werden.

Antwortformat

Eine erfolgreiche Anfrage gibt einen notification_key wie den folgenden zurück:

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

Speichern Sie den notification_key und den entsprechenden notification_key_name, um sie in nachfolgenden Vorgängen zu verwenden.

Benachrichtigungsschlüssel abrufen

Wenn Sie einen vorhandenen Benachrichtigungsschlüssel abrufen müssen, verwenden Sie den notification_key_name in einer GET-Anfrage wie unten 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 wie ein anderer Schlüssel aussieht, ist er tatsächlich ein gültiger notification_key-Wert.

FCM Tokens für Gerätegruppen abrufen

Wenn Sie FCM Tokens abrufen müssen, die zu einer Gerätegruppe gehören, verwenden Sie den notification_key in einer GET-Anfrage wie unten gezeigt:

https://fcm.googleapis.com/fcm/notification?notification_key=APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ
Content-Type:application/json
access_token_auth: true
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
project_id:SENDER_ID
{}

Die Antwort sieht so aus:

{
   "notification_key_name": "appUser-Chris",
   "registration_ids": ["token1", "token2"]
}

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 gesetzt ist, und geben Sie die Registrierungstokens für das Hinzufügen oder Entfernen an.

HTTP-POST-Anfrage

Wenn Sie beispielsweise ein Gerät mit dem Registrierungstoken bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1... zu appUser-Chris hinzufügen möchten, senden Sie diese Anfrage:

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": "add",
   "notification_key_name": "appUser-Chris",
   "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ",
   "registration_ids": ["bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."]
}
Antwortformat

Eine erfolgreiche Anfrage zum Hinzufügen oder Entfernen eines Geräts gibt einen notification_key wie den folgenden zurück:

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

Schlüssel zur Verwaltung von Gerätegruppen

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

Parameter Nutzung Beschreibung
operation Erforderlich, String Der auszuführende Vorgang.Gültige Werte sind create, add und remove.
notification_key_name Erforderlich, String Der vom Nutzer definierte Name der Gerätegruppe, die erstellt oder geändert werden soll.
notification_key Erforderlich (außer für den Vorgang create, String) Eindeutige Kennung der Gerätegruppe. Dieser Wert wird in der Antwort für einen erfolgreichen Vorgang create zurückgegeben und ist für alle nachfolgenden Vorgänge für die Gerätegruppe erforderlich.
registration_ids Erforderlich, Array von Strings Die Geräte-Tokens, 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

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. Setzen Sie das Feld token auf den Benachrichtigungsschlüssel der Gruppe:

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