Bei Nachrichten an Gerätegruppen können Sie einer einzelnen Gruppe mehrere Geräte hinzufügen. Das ähnelt der Nachrichtenübermittlung per Thema, umfasst aber 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. Gerätegruppen-Messaging unterscheidet sich von themenbezogenem Messaging insofern, als dabei die Verwaltung von Gerätegruppen über Ihre Server und nicht direkt in Ihrer Anwendung erfolgt.
Für einen Benachrichtigungsschlüssel ist eine maximale Anzahl von 20 Mitgliedern zulässig.
Gerätegruppen verwalten
Bevor Sie Nachrichten an eine Gerätegruppe senden, müssen Sie Folgendes tun:
-
Rufen Sie Registrierungstokens für jedes Gerät ab, das Sie der Gruppe hinzufügen möchten.
-
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 – Erstellen und Entfernen von Gruppen sowie Hinzufügen oder Entfernen von Geräten – erfolgt über die HTTP v1 API. Dabei werden kurzlebige Tokens verwendet, um Sendanfragen zu autorisieren. Eine Liste der unterstützten Schlüssel finden Sie unter Verwaltungsschlüssel für Gerätegruppen.
Gerätegruppen auf dem Anwendungsserver 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 Client-App eindeutig sein, 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
Bei einer erfolgreichen Anfrage wird eine notification_key
wie die folgende zurückgegeben:
{ "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ" }
Speichern Sie die notification_key
und die entsprechende 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 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. Auch wenn jeder String wie ein anderer Schlüssel erscheint, ist er in Wirklichkeit ein gültiger Wert für „notification_key“.
Geräte zu einer Gerätegruppe hinzufügen und daraus entfernen
Wenn du Geräte zu einer vorhandenen Gruppe hinzufügen oder daraus entfernen möchtest, sende eine POST-Anfrage, wobei der Parameter operation
auf add
oder remove
gesetzt ist, und gib die Registrierungstokens zum 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 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 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 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 für die 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