FCM è retrocompatibile con GCM. I passaggi per la configurazione di FCM su AWS sono identici a GCM set up procedure e (almeno per il momento) FCM funziona in modo trasparente con GCM e SNS rispetto alla configurazione lato server.
Tuttavia, se si sta inviando data
carichi al dispositivo Android non saranno trattati a meno che non si implementa una client side service che si estende FirebaseMessagingService
. Il generatore di messaggi JSON predefinito nella console AWS invia i messaggi data
, che verranno ignorati dall'app a meno che il servizio sopra menzionato non sia implementato. Per aggirare il problema per i test iniziali è possibile fornire un notification
payload personalizzato che sarà ricevuta dal vostro dispositivo (fino a quando l'applicazione non è in primo piano)
Ci sono GCM-FCM migration instructions fornite da Google tuttavia le modifiche è necessario apportare sono prevalentemente sul lato App.
I passaggi da seguire per testare GCM/FCM sulla vostra app con SNS sono:
- Creare un Platform Application in SNS, selezionando Google Cloud Messaging (GCM) come push piattaforma di notifica, e fornendo il vostro Server API key nel campo Chiave API.
- selezionare l'applicazione della piattaforma e fare clic sul pulsante Crea piattaforma endpoint.
- Fornire l'InstanceID (dispositivo Token) generato dalla vostra applicazione. È necessario estendere il numero
FirebaseInstanceIDService
e sostituire il metodo onTokenRefresh
per vederlo all'interno dell'app Android. Dopo aver installato have done this, disinstallare e reinstallare l'app e il token deve essere stampato sulla console di debug in Android Studio al primo avvio.
- Fare clic sul pulsante Aggiungi endpoint.
- Fare clic sul collegamento ARN per la propria applicazione di piattaforma.
- selezionare il punto finale appena creato per il dispositivo e fare clic sul Pubblica all'endpoint pulsante.
- Selezionare il formato messaggio JSON e fare clic sul pulsante JSON generatore di messaggi.
- inserire un messaggio di prova e fare clic sul Genera JSON pulsante
- Ora arriva la "parte Gotcha".
Il messaggio che viene generato dal SNS saranno di forma:
{
"GCM": "{ \"data\": { \"message\": \"test message\" } }"
}
Come abbiamo accennato in precedenza, data
carichi verranno ignorati se nessun servizio a riceverne è stato implementato. Vorremmo testare senza scrivere troppo codice, quindi dovremmo inviare un payload notification
. Per fare questo, è sufficiente modificare il messaggio JSON per leggere:
{
"GCM": "{ \"notification\": { \"text\": \"test message\" } }"
}
Una volta che avete fatto questo, assicurarsi che la vostra applicazione non è in esecuzione sul dispositivo, e premere il Pubblica messaggio pulsante. Ora dovresti visualizzare una notifica sul tuo dispositivo.
Ovviamente è possibile eseguire tutto questo in modo programmatico tramite l'API Amazon SNS, tuttavia tutti gli esempi sembrano utilizzare il payload data
, quindi è necessario tenerlo a mente e generare un payload appropriato per il proprio caso d'uso.
fonte
2016-07-28 02:58:45
SNS non supporta ancora FCM, utilizza un deprecato versione di GCM. Da dove prendi la chiave API? –
quello che ho provato è stato, ho cercato di mettere chiave API di FCM in SNS e non ha funzionato, dopo aver letto il documento in AWS (SNS) hanno accennato a mettere chiave del server. L'ho provato ha funzionato bene. Sono in grado di inviare notifiche push tramite SNS per FCM. Non so esattamente il motivo per cui ha funzionato. Sei sicuro che SNS attualmente non supporti FCM? – Naroju
È corretto che la chiave del server è necessaria per inviare messaggi GCM (ora FCM). Sul lato client (dispositivo mobile) GCM e FCM sono generalmente gli stessi, quindi entrambi riceveranno messaggi in modo atteso. Tuttavia ci sono alcune funzionalità FCM che non funzionano, ad esempio: topic messaging. –