Über Web/JavaScript Nachrichten an Gerätegruppen senden

Mit der Nachrichtenübermittlung an Gerätegruppen können Sie einer einzelnen Gruppe mehrere Geräte hinzufügen. Dies ähnelt dem Senden von Nachrichten an Themen, umfasst aber eine 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 Senden von Nachrichten an Gerätegruppen unterscheidet sich vom Senden von Nachrichten an Themen dadurch, dass Gerätegruppen von Ihren Servern aus verwaltet werden und nicht direkt in Ihrer Anwendung.

Ein Benachrichtigungsschlüssel kann maximal 20 Mitglieder haben.

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 Sie eine bestimmte Gruppe (in der Regel einen Nutzer) allen zugehörigen Registrierungstokens der Gruppe zuordnen. Sie können Benachrichtigungsschlüssel auf dem App-Server erstellen.

Die einfache Verwaltung von Gerätegruppen – 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 verwendet, um Sendeanfragen zu autorisieren. Eine Liste der unterstützten Schlüssel finden Sie unter Schlüssel für die Verwaltung von Gerätegruppen.

Gerätegruppen auf dem App-Server verwalten

Gerätegruppe erstellen

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

Die notification_key_name ist ein Name oder eine Kennung (z.B. ein Nutzername), die für eine bestimmte Gruppe eindeutig ist. Die notification_key_name und notification_key sind für eine Gruppe von Registrierungstokens eindeutig. notification_key_name muss für jede Client-App eindeutig sein, wenn Sie mehrere Client-Apps für dieselbe Absender-ID haben. So wird sichergestellt, dass Nachrichten nur an die vorgesehene Ziel-App gesendet werden.

Antwortformat

Bei einer erfolgreichen Anfrage wird ein notification_key wie das folgende zurückgegeben:

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

Speichern Sie notification_key und die entsprechende notification_key_name für die Verwendung in nachfolgenden Vorgängen.

Benachrichtigungsschlüssel abrufen

Wenn Sie einen vorhandenen Benachrichtigungsschlüssel abrufen möchten, verwenden Sie 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 ein anderer Schlüssel zu sein scheint, ist er tatsächlich ein gültiger `notification_key`-Wert.

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

Wenn Sie einer vorhandenen Gruppe Geräte hinzufügen oder daraus entfernen möchten, senden Sie eine POST-Anfrage mit dem Parameter operation, der 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:

{
   "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 ein notification_key wie das 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. Schlüssel zur Verwaltung von 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 Gerätegruppe, die erstellt oder geändert werden soll.
notification_key Erforderlich (außer für den create-Vorgang), String 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 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, wird die Gerätegruppe von FCM gelöscht.

Downstream-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 zum Autorisieren von Sendeanfragen verwendet. 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