Integración de tokens de dispositivo con Amazon SNS para las notificaciones móviles - Amazon Simple Notification Service

Integración de tokens de dispositivo con Amazon SNS para las notificaciones móviles

La primera vez que registre una aplicación y un dispositivo móvil en un servicio de notificaciones, como Apple Push Notification Service (APNs) y Firebase Cloud Messaging (FCM), el servicio de notificaciones devuelve un token de dispositivo o un ID de registro. Cuando se agregan los tokens de dispositivo o los ID de registro a Amazon SNS, estos se utilizan con la API PlatformApplicationArn con el fin de crear un punto de enlace para la aplicación y el dispositivo. Cuando Amazon SNS crea el punto de enlace, se devuelve un EndpointArn. El EndpointArn es cómo Amazon SNS sabe a qué aplicación y a qué dispositivo móvil enviar el mensaje de notificación.

Puede agregar tokens de dispositivo e ID de registro a Amazon SNS con los métodos siguientes:

  • Añadiendo manualmente un token único a AWS con la AWS Management Console.

  • Cargando varios tokens utilizando la API CreatePlatformEndpoint.

  • Registrando tokens de dispositivos que instalarán sus aplicaciones en el futuro.

Para añadir manualmente un token de dispositivo o ID de registro
  1. Inicie sesión en la consola de Amazon SNS.

  2. En el panel de navegación, elija Notificaciones push.

  3. En la sección Aplicaciones de plataforma, seleccione la aplicación y, a continuación, elija Editar. Si aún no ha creado una aplicación de plataforma, créela ahora. Para obtener instrucciones al respecto, consulte Creación de una aplicación de plataforma de Amazon SNS.

  4. Elija Agregar puntos de conexión.

  5. En el cuadro Endpoint Token (Token de punto de enlace), escriba el ID de token o el ID de registro, según el servicio de notificaciones. Por ejemplo, con ADM y FCM, debe ingresar el ID de registro.

  6. (Opcional) En el cuadro Datos de usuario, ingrese información arbitraria para asociarla al punto de enlace. Amazon SNS no utiliza estos datos. Los datos deben estar en formato UTF-8 y tener menos de 2 KB.

  7. Elija Agregar puntos de conexión.

    Con el punto de conexión creado, puede enviar mensajes directamente a un dispositivo móvil o enviar mensajes a dispositivos móviles que estén suscritos a un tema.

Para cargar varios tokens utilizando la API CreatePlatformEndpoint.

A continuación, en los pasos siguientes se muestra cómo utilizar la aplicación Java de muestra (paquete bulkupload) proporcionada por AWS para cargar varios tokens (tokens de dispositivo o ID de registro) en Amazon SNS. Puede utilizar esta aplicación de muestra como ayuda para comenzar a cargar sus tokens.

nota

Los siguientes pasos utilizan el IDE de Eclipse Java. En los pasos, se presupone que ha instalado el AWS SDK for Java y dispone de credenciales de seguridad de AWS para su Cuenta de AWS. Para obtener más información, consulte AWS SDK for Java. Para obtener más información sobre las credenciales, consulte ¿Cómo obtengo credenciales de seguridad? en la Referencia general de AWS.

  1. Descargue y descomprima el archivo snsmobilepush.zip.

  2. Cree un nuevo proyecto Java de en Eclipse.

  3. Importe la carpeta SNSSamples al directorio superior del proyecto de Java que acaba de crear. En Eclipse, haga clic con el botón derecho en el nombre del proyecto de Java y, a continuación, elija Import (Importar), expanda General, elija File System (Sistema de archivos) y Next (Siguiente), vaya a la carpeta SNSSamples, elija OK (Aceptar) y, a continuación, Finish (Finalizar).

  4. Descargue una copia de la biblioteca OpenCSV y añádala a la ruta de compilación del paquete bulkupload.

  5. Abra el archivo BulkUpload.properties incluido en el paquete bulkupload.

  6. Añada lo siguiente a BulkUpload.properties:

    • El ApplicationArn al que desea añadir puntos de enlace.

    • La ruta completa de la ubicación del archivo CSV que contiene los tokens.

    • Los nombres de archivos CSV (como goodTokens.csv o badTokens.csv) que deben crearse para registrar los tokens que Amazon SNS analiza de forma correcta y los que no funcionan.

    • (Opcional) Los caracteres para especificar el delimitador y citar en el archivo CSV que contiene los tokens.

    • (Opcional) El número de subprocesos que deben utilizarse para crear puntos de enlace de forma simultánea. El valor predeterminado es 1 subproceso.

    El BulkUpload.properties finalizado ha de tener un aspecto similar al siguiente:

    applicationarn:arn:aws:sns:us-west-2:111122223333:app/FCM/fcmpushapp csvfilename:C:\\mytokendirectory\\mytokens.csv goodfilename:C:\\mylogfiles\\goodtokens.csv badfilename:C:\\mylogfiles\\badtokens.csv delimiterchar:' quotechar:" numofthreads:5
  7. Ejecute la aplicación BatchCreatePlatformEndpointSample.java para cargar los tokens en Amazon SNS.

    En este ejemplo, los puntos de enlace que se han creado para los tokens que se han cargado de forma correcta en Amazon SNS se registran en goodTokens.csv, mientras que los tokens incorrectos se registran en badTokens.csv. Además, debe ver los logs STD OUT escritos en la consola de Eclipse, que tiene contenido similar al siguiente:

    <1>[SUCCESS] The endpoint was created with Arn arn:aws:sns:us-west-2:111122223333:app/FCM/fcmpushapp/165j2214-051z-3176-b586-138o3d420071 <2>[ERROR: MALFORMED CSV FILE] Null token found in /mytokendirectory/mytokens.csv
Para registrar tokens de dispositivos que instalarán sus aplicaciones en el futuro

Puede utilizar una de las dos opciones siguientes:

  • Utilice el servicio de Amazon Cognito: la aplicación móvil necesitará credenciales para crear puntos de enlace asociados a la aplicación de plataforma de Amazon SNS. Le recomendamos que utilice credenciales temporales que venzan al cabo de un periodo de tiempo. Para la mayoría de las situaciones, le recomendamos que utilice Amazon Cognito para crear credenciales de seguridad temporales. Para obtener más información, consulte la Guía para desarrolladores de Amazon Cognito. Si desea recibir una notificación cada vez que se inscriba una aplicación en Amazon SNS, puede registrarse para recibir un evento de Amazon SNS que le proporcionará el ARN del punto de enlace nuevo. También puede utilizar la API ListEndpointByPlatformApplication para obtener la lista completa de puntos de enlace registrados en Amazon SNS.

  • Utilice un servidor proxy: si la infraestructura de la aplicación ya está configurada para que las aplicaciones móviles llamen y se registren en cada instalación, puede seguir utilizando esta configuración. Su servidor se comportará como un proxy y transmitirá el token de dispositivo a las notificaciones push móviles de Amazon SNS, así como los datos de usuario que desee almacenar. Para ello, el servidor proxy se conectará a AWS con sus credenciales de y usará la llamada a la API CreatePlatformEndpoint para cargar la información de token. Se devuelve el nombre de recurso de Amazon (ARN) del punto de enlace que acaba de crear, que su servidor puede almacenar para realizar posteriores llamadas de publicación a Amazon SNS.