J'utilise des AWS
ressources pour mon projet Android, je AWS SNS
prévois d'ajouter un service de notification push pour mon projet avec .il y a quelques questions qui me dérangent beaucoup. Je n'ai trouvé aucune question à ce sujet, sauf une ou deux mais avec des explications peu claires.
1. AWS
supporte- FCM
t-il? SNS
travailler avec GCM
. Mais Google recommande d'utiliser FCM au lieu de GCM
. Je n'ai pas trouvé de AWS
soutien FCM
.
2. Stockez-vous AWS
des messages (ou des données) dans leurs bases de données même après l'envoi de notifications push?
3.J'ai essayé de mettre la clé api FCM dans la plate-forme d'application SNS, elle affiche des paramètres non valides pourquoi?
android
amazon-web-services
google-cloud-messaging
amazon-sns
firebase-cloud-messaging
Naroju
la source
la source
Réponses:
FCM est rétrocompatible avec GCM. Les étapes de configuration de FCM sur AWS sont identiques à la procédure de configuration de GCM et (au moins pour le moment) FCM fonctionne de manière transparente avec GCM et SNS en ce qui concerne la configuration côté serveur.
Cependant , si vous envoyez des
data
charges utiles à l'appareil Android, elles ne seront traitées que si vous implémentez un service côté client qui s'étendFirebaseMessagingService
. Le générateur de messages JSON par défaut dans la console AWS envoie desdata
messages, qui seront ignorés par votre application à moins que le service susmentionné ne soit implémenté. Pour contourner ce problème lors des tests initiaux, vous pouvez fournir unenotification
charge utile personnalisée qui sera reçue par votre appareil (tant que votre application n'est pas au premier plan)Il existe des instructions de migration GCM-FCM fournies par Google, mais les modifications que vous devez apporter se trouvent principalement du côté de l'application.
Les étapes à suivre pour tester GCM / FCM sur votre application avec SNS sont:
FirebaseInstanceIDService
et remplacer laonTokenRefresh
méthode pour voir cela dans votre application Android. Une fois que vous avez fait cela , désinstallez et réinstallez votre application et votre jeton doit être imprimé sur la console de débogage dans Android Studio au premier démarrage.Le message généré par SNS sera de la forme:
Comme nous l'avons mentionné précédemment, les
data
charges utiles seront ignorées si aucun service pour les recevoir n'a été implémenté. Nous aimerions tester sans écrire trop de code, donc nous devrions plutôt envoyer unenotification
charge utile. Pour ce faire, changez simplement le message JSON pour lire:Une fois que vous avez fait cela, assurez-vous que votre application n'est pas en cours d'exécution sur l'appareil et cliquez sur le bouton Publier le message . Vous devriez maintenant voir une notification apparaître sur votre appareil.
Vous pouvez bien sûr faire tout cela par programme via l'API Amazon SNS, mais tous les exemples semblent utiliser la
data
charge utile, vous devez donc garder cela à l'esprit et générer une charge utile adaptée à votre cas d'utilisation.la source
data
messages fonctionne bien avec sns même si l'application cliente n'implémente pas FCM mais GCM. Dans mon application, je n'ai pas mis à niveau vers FCM côté client, mais FCM utilisant SNS fonctionne également bien pour lesdata
messages. Ça ne devrait pas marcher?Vous pouvez maintenant accéder à votre console Firebase ( https://console.firebase.google.com/ ) sélectionner votre projet, cliquer sur l'icône d'engrenage et choisir les paramètres du projet, puis cliquer sur l'onglet de messagerie cloud ...
Vous verrez la clé de serveur héritée qui est la clé API GCM et vous aurez la possibilité de générer de nouvelles clés de serveur qui sont les versions FCM
SNS acceptera les deux versions mais leur option de menu le catégorise toujours sous GCM
Voici l'image pour votre référence:
Notez que vous pouvez supprimer "accidentellement" vos clés de serveur, mais la clé de serveur héritée ne peut pas être supprimée. De plus, si vous cliquez sur le bouton Ajouter une clé de serveur, vous obtiendrez une nouvelle clé de serveur CI-DESSOUS la première, SANS AVERTISSEMENT! ... Beau travail Google;)
la source
J'ai essayé d'utiliser une solution avec une charge utile de notification au lieu de données, mais je n'ai pas reçu de notifications push sur l'appareil mobile. J'ai trouvé ce tutoriel https://youtu.be/iBTFLu30dSg avec des sous-titres en anglais sur la façon d'utiliser FCM avec AWS SNS étape par étape et un exemple sur la façon d'envoyer des notifications push depuis la console AWS et de l'implémenter sur php avec aws php sdk. Cela m'a beaucoup aidé.
la source
Encore une note supplémentaire à l'excellente réponse de Nathan Dunn. Comment envoyer des données avec la notification de SNS à Firebase.
Nous devons ajouter des données au Json (à l'intérieur de la notification):
Dans votre implémentation FirebaseMessagingService (exemple Xamarin)
la source
Juste une note supplémentaire à la réponse de Nathan Dunn: pour ajouter du son, utilisez le message JSON suivant
la source
Il m'a fallu un certain temps pour comprendre comment envoyer la notification avec la bonne charge utile (publier dans le sujet). Je vais donc le mettre ici.
la source
Amazon prend en charge FCM car tout le code précédent a été migré de GCM vers FCM. L'article ci-dessous explique en détail.
Article publié par Amazon
la source
Pour répondre aux questions:
Pour un tutoriel détaillé sur la configuration de FCM avec SNS, veuillez lire cet article.
la source