La mensajería de grupo de dispositivos le permite agregar varios dispositivos a un solo grupo. Esto es similar a la mensajería por temas, pero incluye autenticación para garantizar que la membresía del grupo sea administrada únicamente por sus servidores. Por ejemplo, si desea enviar diferentes mensajes a diferentes modelos de teléfono, sus servidores pueden agregar/eliminar registros en los grupos apropiados y enviar el mensaje apropiado a cada grupo. La mensajería de grupos de dispositivos se diferencia de la mensajería de temas en que implica administrar grupos de dispositivos desde sus servidores en lugar de directamente dentro de su aplicación.
El número máximo de miembros permitido para una clave de notificación es 20.
Administrar grupos de dispositivos
Antes de enviar mensajes a un grupo de dispositivos, debes:
Obtenga tokens de registro para cada dispositivo que desee agregar al grupo.
Cree la
notification_key
, que identifica el grupo de dispositivos asignando un grupo en particular (normalmente un usuario) a todos los tokens de registro asociados del grupo. Puede crear claves de notificación en el servidor de aplicaciones.
La administración básica de grupos de dispositivos (creación y eliminación de grupos, y adición o eliminación de dispositivos) se realiza a través de la API HTTP v1, utilizando tokens de corta duración para autorizar solicitudes de envío . Consulte Claves de administración de grupos de dispositivos para obtener una lista de claves admitidas.
Administrar grupos de dispositivos en el servidor de aplicaciones
Crear un grupo de dispositivos
Para crear un grupo de dispositivos, envíe una solicitud POST que proporcione un nombre para el grupo y una lista de tokens de registro para los dispositivos. FCM devuelve una nueva notification_key
que representa el grupo de dispositivos.
Solicitud de publicación HTTP
Envíe una solicitud como la siguiente a 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
es un nombre o identificador (por ejemplo, puede ser un nombre de usuario) que es exclusivo de un grupo determinado. notification_key_name
y notification_key
son exclusivos de un grupo de tokens de registro. Es importante que notification_key_name
sea único por aplicación cliente si tiene varias aplicaciones cliente para el mismo ID de remitente . Esto garantiza que los mensajes solo lleguen a la aplicación de destino deseada.
Formato de respuesta
Una solicitud exitosa devuelve una notification_key
como la siguiente:
{ "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ" }
Guarde la notification_key
y el notification_key_name
correspondiente para utilizarlos en operaciones posteriores.
Recuperar una clave de notificación
Si necesita recuperar una clave de notificación existente, use notification_key_name
en una solicitud GET como se muestra:
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 {}
Para cada solicitud GET para un nombre de clave de notificación determinado, el servidor devuelve una cadena codificada única. Aunque cada cadena puede parecer una clave diferente, en realidad es un valor válido de `notification_key`.
Agregar y eliminar dispositivos de un grupo de dispositivos
Para agregar o eliminar dispositivos de un grupo existente, envíe una solicitud POST con el parámetro operation
configurado para add
o remove
y proporcione los tokens de registro para agregarlos o eliminarlos.
Solicitud de publicación HTTP
Por ejemplo, para agregar un dispositivo con el token de registro bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...
a appUser-Chris
, debe enviar esta solicitud:
{
"operation": "add",
"notification_key_name": "appUser-Chris",
"notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ",
"registration_ids": ["bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."]
}
Formato de respuesta
Una solicitud exitosa para agregar o eliminar un dispositivo devuelve una notification_key
como la siguiente:
{ "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ" }
Claves de administración de grupos de dispositivos
La siguiente tabla enumera las claves para crear grupos de dispositivos y agregar y eliminar miembros.
Parámetro | Uso | Descripción |
---|---|---|
operation | Requerido, cadena | La operación a ejecutar. Los valores válidos son create , add y remove . |
notification_key_name | Requerido, cadena | El nombre definido por el usuario del grupo de dispositivos que se creará o modificará. |
notification_key | Requerido (excepto para la operación create , cadena | Identificador único del grupo de dispositivos. Este valor se devuelve en la respuesta para una operación create exitosa y es necesario para todas las operaciones posteriores en el grupo de dispositivos. |
registration_ids | Requerido, conjunto de cadenas | Los tokens del dispositivo para agregar o eliminar. Si elimina todos los tokens de registro existentes de un grupo de dispositivos, FCM elimina el grupo de dispositivos. |
Enviar mensajes a grupos de dispositivos
Para enviar mensajes a grupos de dispositivos, utilice la API HTTP v1. Si actualmente estás enviando a grupos de dispositivos usando las API de envío heredadas obsoletas para HTTP o XMPP, o cualquiera de las versiones anteriores del SDK de Firebase Admin para Node.js basadas en los protocolos heredados, te recomendamos encarecidamente que migres a HTTP v1. API lo antes posible. Las API de envío heredadas se desactivarán y eliminarán en junio de 2024.
Enviar mensajes a un grupo de dispositivos es muy similar a enviar mensajes a un dispositivo individual, utilizando el mismo método para autorizar solicitudes de envío . Establezca el campo token
en la clave de notificación del grupo:
DESCANSAR
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!"
}
}
}
comando de curvatura
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