Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Uso de cargas útiles de Google Firebase Cloud Messaging v1 en Amazon SNS

Modo de enfoque
Uso de cargas útiles de Google Firebase Cloud Messaging v1 en Amazon SNS - Amazon Simple Notification Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Amazon SNS admite el uso de la API de HTTP v1 de FCM para enviar notificaciones a destinos de Android, iOS y Webpush. En este tema se proporcionan ejemplos de la estructura de carga útil al publicar notificaciones push para el móvil mediante la CLI o la API de Amazon SNS.

Puede incluir los siguientes tipos de mensajes en su carga útil al enviar una notificación de FCM:

  • Mensaje de datos: la aplicación cliente gestiona un mensaje de datos, que contiene pares de clave-valor personalizados. Al crear un mensaje de datos, debe incluir la clave data con un objeto JSON como valor y, a continuación, introducir los pares de clave-valor personalizados.

  • Mensaje de notificación o mensaje para mostrar: un mensaje de notificación contiene un conjunto predefinido de claves administradas por el SDK de FCM. Estas claves varían en función del tipo de dispositivo en el que se realice la entrega. Para obtener más información sobre las claves de notificación específicas de la plataforma, consulte lo siguiente:

Para obtener más información sobre los tipos de mensajes de FCM, consulte Message types en la documentación de Firebase de Google.

Uso de la estructura de carga útil de FCM v1 para enviar mensajes

Si va a crear una aplicación de FCM por primera vez o desea utilizar las características de FCM v1, puede optar por enviar una carga útil con formato de FCM v1. Para ello, debe incluir la clave de nivel superior fcmV1Message. Para obtener más información sobre la creación de cargas útiles de FCM v1, consulte Migrar de una versión antigua de FCM APIs a HTTP v1 y Personalizar un mensaje en todas las plataformas en la documentación de Firebase de Google.

Ejemplo de carga útil de FCM v1 enviada a Amazon SNS:

nota

El valor de la clave GCM utilizado en el siguiente ejemplo debe codificarse como una cadena al publicar una notificación mediante Amazon SNS.

{ "GCM": "{ \"fcmV1Message\": { \"validate_only\": false, \"message\": { \"notification\": { \"title\": \"string\", \"body\": \"string\" }, \"data\": { \"dataGen\": \"priority message\" }, \"android\": { \"priority\": \"high\", \"notification\": { \"body_loc_args\": [\"string\"], \"title_loc_args\": [\"string\"], \"sound\": \"string\", \"title_loc_key\": \"string\", \"title\": \"string\", \"body\": \"string\", \"click_action\": \"clicky_clacky\", \"body_loc_key\": \"string\" }, \"data\": { \"dataAndroid\": \"priority message\" }, \"ttl\": \"10023.32s\" }, \"apns\": { \"payload\": { \"aps\": { \"alert\": { \"subtitle\": \"string\", \"title-loc-args\": [\"string\"], \"title-loc-key\": \"string\", \"loc-args\": [\"string\"], \"loc-key\": \"string\", \"title\": \"string\", \"body\": \"string\" }, \"category\": \"Click\", \"content-available\": 0, \"sound\": \"string\", \"badge\": 5 } } }, \"webpush\": { \"notification\": { \"badge\": \"5\", \"title\": \"string\", \"body\": \"string\" }, \"data\": { \"dataWeb\": \"priority message\" } } } } }" }

Al enviar una carga útil JSON, asegúrese de incluir el atributo message-structure en la solicitud y establecerlo en json.

Ejemplo con la CLI:

aws sns publish --topic $TOPIC_ARN --message '{"GCM": "{\"fcmV1Message\": {\"message\":{\"notification\":{\"title\":\"string\",\"body\":\"string\"},\"android\":{\"priority\":\"high\",\"notification\":{\"title\":\"string\",\"body\":\"string\"},\"data\":{\"customAndroidDataKey\":\"custom key value\"},\"ttl\":\"0s\"},\"apns\":{\"payload\":{\"aps\":{\"alert\":{\"title\":\"string\", \"body\":\"string\"},\"content-available\":1,\"badge\":5}}},\"webpush\":{\"notification\":{\"badge\":\"URL\",\"body\":\"Test\"},\"data\":{\"customWebpushDataKey\":\"priority message\"}},\"data\":{\"customGeneralDataKey\":\"priority message\"}}}}", "default": "{\"notification\": {\"title\": \"test\"}"}' --region $REGION --message-structure json

Para obtener más información sobre el envío de cargas útiles con formato FCM v1, consulte lo siguiente en la documentación de Firebase de Google:

Uso de la estructura de carga útil de FCM v1 para enviar mensajes a la API de FCM v1

Al migrar a FCM v1, no tiene que cambiar la estructura de la carga útil que utilizaba para sus credenciales antiguas. Amazon SNS transforma la carga útil en la nueva estructura de carga útil de FCM v1 y la envía a Google.

Formato de carga útil del mensaje de entrada:

{ "GCM": "{\"notification\": {\"title\": \"string\", \"body\": \"string\", \"android_channel_id\": \"string\", \"body_loc_args\": [\"string\"], \"body_loc_key\": \"string\", \"click_action\": \"string\", \"color\": \"string\", \"icon\": \"string\", \"sound\": \"string\", \"tag\": \"string\", \"title_loc_args\": [\"string\"], \"title_loc_key\": \"string\"}, \"data\": {\"message\": \"priority message\"}}" }

Mensaje enviado a Google:

{ "message": { "token": "***", "notification": { "title": "string", "body": "string" }, "android": { "priority": "high", "notification": { "body_loc_args": [ "string" ], "title_loc_args": [ "string" ], "color": "string", "sound": "string", "icon": "string", "tag": "string", "title_loc_key": "string", "title": "string", "body": "string", "click_action": "string", "channel_id": "string", "body_loc_key": "string" }, "data": { "message": "priority message" } }, "apns": { "payload": { "aps": { "alert": { "title-loc-args": [ "string" ], "title-loc-key": "string", "loc-args": [ "string" ], "loc-key": "string", "title": "string", "body": "string" }, "category": "string", "sound": "string" } } }, "webpush": { "notification": { "icon": "string", "tag": "string", "body": "string", "title": "string" }, "data": { "message": "priority message" } }, "data": { "message": "priority message" } } }

Riesgos potenciales

  • La correspondencia entre la carga útil antigua y v1 no admite los headers ni las claves fcm_options del servicio de notificaciones push de Apple (APNS). Si quiere utilizar estos campos, envíe una carga útil de FCM v1.

  • En algunos casos, la versión 1 de FCM requiere los encabezados de los mensajes para enviar notificaciones silenciosas a tus APNs dispositivos. Si actualmente envías notificaciones silenciosas a tus APNs dispositivos, no funcionarán con el enfoque tradicional. En su lugar, le recomendamos que utilice la carga útil de FCM v1 para evitar problemas inesperados. Para ver una lista de APNs los encabezados y para qué se utilizan, consulta Cómo comunicarse con ellos APNs en la Guía para desarrolladores de Apple.

  • Si utiliza el atributo TTL de Amazon SNS al enviar la notificación, solo se actualizará en el campo android. Si quiere establecer el atributo TTL de APNS, utilice la carga útil de FCM v1.

  • Se establecerá una correspondencia con las claves android, apns y webpush, que se rellenarán con todas las claves pertinentes proporcionadas. Por ejemplo, si proporciona title, que es una clave compartida entre las tres plataformas, la correspondencia con FCM v1 rellenará las tres plataformas con el título proporcionado.

  • Algunas claves compartidas entre plataformas esperan tipos de valores diferentes. Por ejemplo, la clave badge que se pasa a apns espera un valor entero, mientras que la clave badge que se pasa a webpush espera un valor de cadena. En los casos en los que proporcione la clave badge, la correspondencia de FCM v1 solo rellenará la clave para la que proporcionó un valor válido.

Eventos de error de entrega de FCM

En la siguiente tabla se proporciona el tipo de error de Amazon SNS que corresponde a los códigos de error o estado recibidos de Google para las solicitudes de notificación de FCM v1. Todos los códigos de error observados recibidos de la API v1 de FCM están disponibles CloudWatch cuando configuras el registro del estado de entrega de tu aplicación.

Código de error/estado de FCM Tipo de error de Amazon SNS Mensaje de error Causa y mitigación

UNREGISTERED

InvalidPlatformToken

El token de la plataforma asociado al punto de conexión no es válido.

El token de dispositivo asociado al punto de conexión está obsoleto o no es válido. Amazon SNS ha deshabilitado el punto de conexión. Actualice el punto de conexión de Amazon SNS al token de dispositivo más reciente.

INVALID_ARGUMENT

InvalidNotification

El cuerpo de la notificación no es válido.

Es posible que el token del dispositivo o la carga útil del mensaje no sean válidos. Compruebe que la carga útil del mensaje sea válida. Si la carga útil del mensaje es válida, actualice el punto de conexión de Amazon SNS al token de dispositivo más reciente.

SENDER_ID_MISMATCH

InvalidPlatformToken

El token de la plataforma asociado al punto de conexión no es válido.

La aplicación de plataforma asociada al token del dispositivo no tiene permiso para enviar al token del dispositivo. Compruebe que está utilizando las credenciales de FCM correctas en su aplicación de plataforma de Amazon SNS.

UNAVAILABLE

DependencyUnavailable

La dependencia no está disponible.

FCM no pudo procesar la solicitud a tiempo. Fallaron todos los reintentos ejecutados por Amazon SNS. Puede almacenar estos mensajes en una cola de mensajes fallidos (DLQ) y redirigirlos más adelante.

INTERNAL

UnexpectedFailure

Error inesperado; póngase en contacto con Amazon. Frase de error [error interno].

El servidor de FCM ha detectado un error al procesar la solicitud. Fallaron todos los reintentos ejecutados por Amazon SNS. Puede almacenar estos mensajes en una cola de mensajes fallidos (DLQ) y redirigirlos más adelante.

THIRD_PARTY_AUTH_ERROR

InvalidCredentials

Las credenciales de la aplicación de plataforma no son válidas.

No se ha podido enviar un mensaje dirigido a un dispositivo iOS o a un dispositivo Webpush. Compruebe que sus credenciales de desarrollo y producción sean válidas.

QUOTA_EXCEEDED

Throttled

Solicitud restringida por [gcm].

Se ha superado una cuota de tasa de mensajes, una cuota de tasa de mensajes del dispositivo o una cuota de tasa de mensajes del tema. Para obtener información sobre cómo resolver este problema, consulta la ErrorCodedocumentación de Firebase de Google.

PERMISSION_DENIED

InvalidNotification

El cuerpo de la notificación no es válido.

En el caso de una excepción PERMISSION_DENIED, el autor de la llamada (su aplicación de FCM) no tiene permiso para ejecutar la operación especificada en la carga útil. Vaya a la consola de FCM y verifique que sus credenciales tengan habilitadas las acciones de API necesarias.

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.