Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


FCM con AWS SNS

Estoy utilizando recursos de AWS para mi proyecto de androide, estoy planeando agregar el servicio de notificación push para mi proyecto con AWS SNS . Hay pocas preguntas que me molestan mucho. No encontré ninguna pregunta con respecto a estos, excepto uno o dos pero con explicaciones poco claras.

1.¿El AWS apoya a FCM ? SNS trabaja con GCM . Pero Google recomienda usar FCM en lugar de GCM . No encontré a AWS apoyando a FCM .

2. ¿ AWS almacena mensajes (o datos) en sus bases de datos incluso después de enviar notificaciones push?

3.I intentó poner la llave del api de FCM en la plataforma de la aplicación del SNS, está demostrando los parámetros no válidos porqué?

3 Solutions collect form web for “FCM con AWS SNS”

FCM es compatible con GCM. Los pasos para configurar FCM en AWS son idénticos al procedimiento de configuración de GCM y (al menos por el momento) FCM funciona de forma transparente con GCM y SNS con respecto a la configuración del servidor.

Sin embargo , si está enviando cargas de data al dispositivo Android, no se procesarán a menos que implemente un servicio de cliente que extienda FirebaseMessagingService . El generador de mensajes predeterminado de JSON en la consola AWS envía mensajes de data , que serán ignorados por su aplicación a menos que el servicio mencionado se implemente. Para evitar esto para las pruebas iniciales, puede proporcionar una carga útil de notification personalizada que recibirá su dispositivo (siempre y cuando su aplicación no esté en primer plano)

Hay instrucciones de migración de GCM-FCM proporcionadas por Google sin embargo, los cambios que necesita realizar son predominantemente en el lado de la aplicación.

Los pasos que debe seguir para probar GCM / FCM en su aplicación con SNS son:

  1. Cree una aplicación de plataforma en SNS , seleccione Google Cloud Messaging (GCM) como plataforma de notificación push y proporcione su clave de API de servidor en el campo clave API .
  2. Seleccione la Aplicación de plataforma y haga clic en el botón Crear plataforma de punto final .
  3. Proporcione el InstanceID ( Device Token ) generado por su aplicación. Debe extender el FirebaseInstanceIDService y reemplazar el método onTokenRefresh para verlo en su aplicación de Android. Una vez hecho esto , desinstale y vuelva a instalar su aplicación y su token debe imprimirse en la consola de depuración en Android Studio en el primer arranque.
  4. Haga clic en el botón Agregar punto final .
  5. Haga clic en el enlace ARN para su aplicación de plataforma.
  6. Seleccione el punto de extremo recién creado para su dispositivo y haga clic en el botón Publicar en el punto final .
  7. Seleccione el formato de mensaje JSON y haga clic en el botón del generador de mensajes JSON .
  8. Introduzca un mensaje de prueba y haga clic en el botón Generar JSON.
  9. Ahora viene la "parte de gotcha".

El mensaje generado por SNS será de la forma siguiente:

 { "GCM": "{ \"data\": { \"message\": \"test message\" } }" } 

Como mencionamos anteriormente, data cargas de data serán ignoradas si no se ha implementado ningún servicio para recibirlas. Nos gustaría probar sin escribir demasiado código, por lo que en su lugar deberíamos enviar una carga de notification . Para ello, simplemente cambie el mensaje JSON para que lea:

 { "GCM": "{ \"notification\": { \"text\": \"test message\" } }" } 

Una vez hecho esto, asegúrese de que su aplicación no se está ejecutando en el dispositivo y pulse el botón Publicar mensaje . Debería ver una notificación emergente en su dispositivo.

Por supuesto, puede hacer todo esto a través de la API de Amazon SNS, sin embargo, todos los ejemplos parecen utilizar la carga de data por lo que debe tener en cuenta y generar una carga útil adecuada a su caso de uso.

Sólo una nota adicional a la respuesta de Nathan Dunn: para agregar sonido utilice el siguiente mensaje JSON

 { "GCM": "{ \"notification\": { \"text\": \"test message\",\"sound\":\"default\" } }" } 

Ahora puede ir a su consola de firebase ( https://console.firebase.google.com/ ) seleccione su proyecto, haga clic en el icono de rueda dentada y elija la configuración del proyecto, luego haga clic en la pestaña de mensajería de la nube …

Verá la clave de servidor heredada que es la clave de API de GCM y tendrá la opción de generar nuevas claves de servidor que son las versiones de FCM

SNS aceptará ambas versiones pero su opción del menú todavía la categoriza debajo de GCM

Aquí está la imagen para su referencia:

Introduzca aquí la descripción de la imagen

Tenga en cuenta que puede quitar "accidentalmente" las claves del servidor, pero la clave del servidor heredado no se puede eliminar. Además, si hace clic en el botón agregar clave del servidor, obtendrá una nueva clave de servidor ABAJO de la primera, sin ninguna advertencia! … Buen trabajo en Google;)

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.