Quiero crear una aplicación de plataforma en Amazon Simple Notification Service (Amazon SNS) para enviar notificaciones de inserción a dispositivos Android.
Resolución
Las notificaciones de inserción de Amazon SNS no están disponibles en todas las regiones de AWS. Para obtener más información, consulta Supported Regions for mobile applications (Regiones compatibles para las aplicaciones móviles).
Requisitos previos: Debes tener un proyecto de Firebase y una aplicación de Android válida registrada en Firebase. Para obtener instrucciones, consulta Step 1: Create a Firebase project and register your app (Paso 1: creación de un proyecto de Firebase y registro de la aplicación) en el sitio web de Firebase. También debes tener credenciales válidas de Firebase Cloud Messaging (FCM), lo que incluye una clave de API de token de proyecto de FCM.
Recuperación de las credenciales de token de tu proyecto de FCM
Sigue estos pasos:
- Abre la consola de Firebase y, a continuación, selecciona tu proyecto.
- En el panel de navegación, selecciona el icono de engranaje y, a continuación, selecciona Configuración del proyecto.
- Selecciona la pestaña Cuentas de servicio.
- Selecciona Generar nueva clave privada para descargar el archivo de clave privada con formato JSON y crear una aplicación de plataforma Android que tenga la autenticación basada en tokens.
Creación de la aplicación de la plataforma Android
Al crear una nueva aplicación de plataforma, selecciona la autenticación basada en tokens para permitir que Amazon SNS utilice la API HTTP v1 de Google FCM. Si tienes una aplicación de plataforma que usa la antigua API de FCM obsoleta, actualiza la aplicación para usar la autenticación basada en tokens. Para obtener más información, consulta Migrate from legacy FCM APIs to HTTP v1 (Migración desde las antiguas API de FCM a HTTP v1) en el sitio web de Firebase.
Puedes usar la consola de Amazon SNS, la Interfaz de la línea de comandos de AWS (AWS CLI) o la API de Amazon SNS para crear la aplicación de plataforma.
Uso de la consola de Amazon SNS
Para usar la consola de Amazon SNS, consulta Creating a platform application (Creación de una aplicación de plataforma).
En Plataforma de notificación de inserción, selecciona Firebase Cloud Messaging (FCM). En Método de autenticación, selecciona Token. A continuación, selecciona Elegir archivo para cargar el archivo de clave privada con formato JSON.
Uso de la AWS CLI
Nota: Si se muestran errores al ejecutar comandos de la AWS CLI, consulta Troubleshooting errors for the AWS CLI (Solución de errores de la AWS CLI). Además, asegúrate de utilizar la versión más reciente de la AWS CLI.
Sigue estos pasos:
-
El archivo debe estar en formato de cadena y no puedes usar caracteres especiales. Para formatear el archivo, ejecuta el siguiente comando desde el mismo directorio en el que se encuentra el archivo de clave privada con formato JSON:
SERVICE_JSON=`jq @json <<< cat "private_key_JSON_file"`
Nota: Sustituye private_key_JSON_file por el nombre del archivo de tu clave privada.
-
Ejecuta el comando create-platform-application desde el mismo directorio en el que se encuentra el archivo de claves:
aws sns create-platform-application --name Your_Application_Name --platform GCM --attributes PlatformCredential=$SERVICE_JSON
Nota: Sustituye Your_Application_Name por el nombre de tu propia aplicación.
El ARN de la aplicación de la plataforma aparece en el resultado del comando.
Ejemplo:
{
"PlatformApplicationArn": "arn:aws:sns:us-east-1:XXXXXXXXXXXX:app/GCM/Your_Application_Name"
}
-
Se recomienda que configures las notificaciones de eventos y el registro del estado de entrega.
Uso de una API de Amazon SNS
Utiliza la operación de la API CreatePlatformApplication.
Envío de notificaciones de inserción
Para usar la aplicación de la plataforma Android para enviar notificaciones de inserción, consulta Mobile push notifications (Notificaciones de inserción para móviles).
Información relacionada
¿Cómo creo una aplicación de plataforma APN para enviar notificaciones push en Amazon SNS mediante la AWS CLI?
Adding device tokens or registration IDs
Publishing to a mobile device
Publishing to a topic
Platform response codes