Enviar mensajes a grupos de dispositivos en C++

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:

  1. Obtenga tokens de registro para cada dispositivo que desee agregar al grupo.

  2. 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.

Tabla 10. Claves de administración de grupos de dispositivos.

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.

Envío de mensajes descendentes 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