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.
Uso de cargas útiles de Google Firebase Cloud Messaging v1 en Amazon SNS
Amazon SNS admite el uso FCM HTTP de API la versión 1 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 móviles mediante Amazon o Amazon SNSAPI. CLI
Al enviar una notificación, puedes incluir los siguientes tipos de mensajes en tu carga útil: FCM
-
Mensaje de datos: la aplicación cliente gestiona un mensaje de datos que contiene pares clave-valor personalizados. Al crear un mensaje de datos, debes incluir la
data
clave con un JSON objeto como valor y, a continuación, introducir los pares clave-valor personalizados. -
Mensaje de notificación o mensaje de visualización: un mensaje de notificación contiene un conjunto predefinido de claves gestionadas por el. FCM SDK Estas claves varían en función del tipo de dispositivo al que vayas a realizar la entrega. Para obtener más información sobre las claves de notificación específicas de la plataforma, consulta lo siguiente:
Para obtener más información sobre los tipos de FCM mensajes, consulta la sección Tipos de mensajes
Contenido
Uso de la estructura de FCM carga útil de la versión 1 para enviar mensajes
Si va a crear una FCM aplicación por primera vez o desea aprovechar las funciones de la FCM versión 1, puede optar por enviar una carga útil con el formato de la FCM versión 1. Para ello, debes incluir la clave de nivel superior. fcmV1Message
Para obtener más información sobre cómo crear cargas útiles en la FCM versión 1, consulta Migrar de la versión antigua FCM APIs a la HTTP versión 1
FCMEjemplo de carga útil de la versión 1 enviada a AmazonSNS:
nota
El valor GCM
clave utilizado en el siguiente ejemplo debe codificarse como una cadena al publicar una notificación mediante AmazonSNS.
{ "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\" } } } } }" }
Cuando envíes una JSON carga útil, asegúrate de incluir el message-structure
atributo en tu solicitud y configúralo en. json
CLIejemplo:
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, consulta lo siguiente en la documentación de Firebase de Google:
Uso de la estructura de carga útil heredada para enviar mensajes a la versión 1 FCM API
Al migrar a la FCM versión 1, no es necesario que cambies la estructura de carga que utilizabas para tus credenciales antiguas. Amazon SNS transforma tu carga útil en la nueva estructura de carga FCM de la versión 1 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 asignación desde la versión anterior a la versión 1 no es compatible con el servicio de notificaciones push de Apple (APNS)
headers
ni con lasfcm_options
teclas. Si quieres usar estos campos, envía una carga útil de la FCM versión 1. -
En algunos casos, la versión 1 requiere los encabezados de los mensajes FCM para enviar notificaciones silenciosas a tus APNs dispositivos. Si actualmente envías notificaciones silenciosas a tus APNs dispositivos, no funcionarán con el enfoque anterior. En su lugar, te recomendamos que utilices la FCM carga útil de la versión 1 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 utilizas el SNS atributo
TTL
Amazon al enviar la notificación, solo se actualizará en elandroid
campo. Si quieres establecer elTTL
APNS atributo, usa la carga útil de la FCM versión 1. -
Las
webpush
clavesandroid
apns
, y se mapearán y rellenarán con todas las claves relevantes proporcionadas. Por ejemplo, si proporcionatitle
una clave compartida entre las tres plataformas, el mapeo de la FCM versión 1 rellenará las tres plataformas con el título que proporcionó. -
Algunas claves compartidas entre plataformas esperan tipos de valores diferentes. Por ejemplo, la
badge
clave que se pasaapns
espera un valor entero, mientras que labadge
clave que se pasawebpush
espera un valor de cadena. En los casos en los que proporcione labadge
clave, la asignación FCM v1 solo rellenará la clave para la que proporcionó un valor válido.
FCMeventos de error en la entrega
La siguiente tabla proporciona el tipo de SNS error de Amazon que corresponde a los códigos de error o estado recibidos de Google para las solicitudes de notificación de la FCM versión 1. Todos los códigos de error observados recibidos en FCM la versión 1 API están disponibles CloudWatch cuando configuras el registro del estado de entrega de tu aplicación.
FCMcódigo de error/estado | Tipo de SNS fallo de Amazon | Mensaje de error | Causa y mitigación |
---|---|---|---|
|
|
El token de plataforma asociado al punto final no es válido. |
El token de dispositivo adjunto a su punto final está obsoleto o no es válido. Amazon ha SNS desactivado tu punto de conexión. Actualiza el SNS terminal de Amazon al token de dispositivo más reciente. |
|
|
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. Comprueba que la carga útil del mensaje sea válida. Si la carga útil del mensaje es válida, actualiza el SNS terminal de Amazon al token de dispositivo más reciente. |
|
|
El token de plataforma asociado al punto final no es válido. |
La aplicación de plataforma asociada al token del dispositivo no tiene permiso para enviar al token del dispositivo. Comprueba que estás utilizando las FCM credenciales correctas en tu aplicación de SNS plataforma Amazon. |
|
|
La dependencia no está disponible. |
FCMno ha podido procesar la solicitud a tiempo. Todos los reintentos ejecutados por Amazon SNS han fallado. Puede almacenar estos mensajes en una cola de letra muerta (DLQ) y volver a publicarlos más adelante. |
|
|
Fallo inesperado; ponte en contacto con Amazon. Frase de error [error interno]. |
El FCM servidor ha detectado un error al intentar procesar la solicitud. Todos los reintentos ejecutados por Amazon SNS han fallado. Puede almacenar estos mensajes en una cola de letra muerta (DLQ) y volver a publicarlos más adelante. |
|
|
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. |
|
|
Solicitud restringida por [gcm]. |
Se ha superado una cuota de velocidad de mensajes, una cuota de velocidad de mensajes de dispositivos o una cuota de velocidad de mensajes por temas. Para obtener información sobre cómo resolver este problema, consulta ErrorCode |
|
|
El cuerpo de la notificación no es válido. |
En el caso de una |