Mithilfe von Gerätegruppen-Messaging können Sie mehrere Geräte zu einer einzelnen Gruppe hinzufügen. Dies ähnelt dem Thema Messaging, umfasst jedoch eine Authentifizierung, um sicherzustellen, dass die Gruppenmitgliedschaft nur von Ihren Servern verwaltet wird. Wenn Sie beispielsweise unterschiedliche Nachrichten an unterschiedliche Telefonmodelle senden möchten, können Ihre Server Registrierungen zu den entsprechenden Gruppen hinzufügen/entfernen und die entsprechende Nachricht an jede Gruppe senden. Der Unterschied zwischen Gerätegruppen-Messaging und Themen-Messaging besteht darin, dass Gerätegruppen von Ihren Servern aus verwaltet werden müssen und nicht 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:
Erhalten Sie Registrierungstoken für jedes Gerät, das Sie der Gruppe hinzufügen möchten.
Erstellen Sie den
notification_key
, der die Gerätegruppe identifiziert, indem eine bestimmte Gruppe (normalerweise ein Benutzer) allen zugehörigen Registrierungstokens der Gruppe zugeordnet wird. 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 oder Entfernen von Geräten – erfolgt über die HTTP v1-API, wobei kurzlebige Token zur Autorisierung von Sendeanfragen verwendet werden. Eine Liste der unterstützten Schlüssel finden Sie unter Gerätegruppenverwaltungsschlüssel .
Verwalten von Gerätegruppen auf dem App-Server
Erstellen einer Gerätegruppe
Um eine Gerätegruppe zu erstellen, senden Sie eine POST-Anfrage, die einen Namen für die Gruppe und eine Liste von Registrierungstokens für die Geräte bereitstellt. 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 Bezeichner (z. B. ein Benutzername), der für eine bestimmte Gruppe eindeutig ist. notification_key_name
und notification_key
sind für eine Gruppe von Registrierungstokens eindeutig. Es ist wichtig, dass notification_key_name
für jede Client-App eindeutig ist, wenn Sie mehrere Client-Apps für dieselbe Absender-ID haben. Dadurch wird sichergestellt, dass Nachrichten nur an die vorgesehene Ziel-App gehen.
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.
Abrufen eines Benachrichtigungsschlüssels
Wenn Sie einen vorhandenen Benachrichtigungsschlüssel abrufen müssen, verwenden Sie den notification_key_name
in einer GET-Anfrage wie 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 eine eindeutige codierte Zeichenfolge zurück. Auch wenn jede Zeichenfolge wie ein anderer Schlüssel aussieht, handelt es sich tatsächlich um einen gültigen „notification_key“-Wert.
Hinzufügen und Entfernen von Geräten zu einer Gerätegruppe
Um Geräte zu einer vorhandenen Gruppe hinzuzufügen oder daraus zu entfernen, senden Sie eine POST-Anfrage mit dem operation
„ add
oder remove
und stellen Sie die Registrierungstoken zum Hinzufügen oder Entfernen bereit.
HTTP-POST-Anfrage
Um beispielsweise ein Gerät mit dem Registrierungstoken bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...
zu appUser-Chris
hinzuzufügen, würden Sie diese Anfrage senden:
{
"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" }
Verwaltungsschlüssel für 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.
Parameter | Verwendung | Beschreibung |
---|---|---|
operation | Erforderlich, Zeichenfolge | Der auszuführende Vorgang. Gültige Werte sind create , add und remove . |
notification_key_name | Erforderlich, Zeichenfolge | Der benutzerdefinierte Name der Gerätegruppe, die erstellt oder geändert werden soll. |
notification_key | Erforderlich (außer für den create , string | Eindeutiger Bezeichner der Gerätegruppe. Dieser Wert wird in der Antwort für einen erfolgreichen create zurückgegeben und ist für alle nachfolgenden Vorgänge für die Gerätegruppe erforderlich. |
registration_ids | Erforderlich, Array von Zeichenfolgen | Die Geräte-Tokens, die hinzugefügt oder entfernt werden sollen. Wenn Sie alle vorhandenen Registrierungstoken aus einer Gerätegruppe entfernen, löscht FCM die Gerätegruppe. |
Senden von Nachrichten an Gerätegruppen
Um Nachrichten an Gerätegruppen zu senden, verwenden Sie die HTTP v1-API. Wenn Sie derzeit mit den veralteten Legacy-Sende-APIs für HTTP oder XMPP oder einer der älteren Versionen des Firebase Admin SDK für Node.js, die auf den Legacy-Protokollen basieren, an Gerätegruppen senden, empfehlen wir Ihnen dringend, auf HTTP v1 zu migrieren API zum frühestmöglichen Zeitpunkt. Die alten Sende-APIs werden im Juni 2024 deaktiviert und entfernt.
Das Senden von Nachrichten an eine Gerätegruppe ist dem Senden von Nachrichten an ein einzelnes Gerät sehr ähnlich und verwendet dieselbe Methode zum Autorisieren von Sendeanfragen . Legen Sie das token
auf den Gruppenbenachrichtigungsschlüssel fest:
AUSRUHEN
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
Senden von Upstream-Nachrichten an Gerätegruppen
Um Upstream-Nachrichten an Gerätegruppen in Apple-Apps zu senden, 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;