Saya menggunakan AWS
sumber daya untuk proyek android saya, saya berencana untuk menambahkan layanan pemberitahuan push untuk proyek saya dengan AWS SNS
. Ada beberapa pertanyaan yang sangat mengganggu saya. Saya tidak menemukan pertanyaan apapun mengenai ini, kecuali satu atau dua tetapi dengan penjelasan yang tidak jelas.
1. Apakah AWS
mendukung FCM
? SNS
bekerja dengan GCM
. Namun Google merekomendasikan untuk menggunakan FCM, bukan GCM
. Saya tidak menemukan AWS
pendukung FCM
.
2. Apakah AWS
menyimpan pesan (atau data) ke dalam database mereka bahkan setelah mengirimkan pemberitahuan push?
3. Saya mencoba menempatkan kunci api FCM di platform aplikasi SNS, itu menunjukkan parameter yang tidak valid mengapa?
android
amazon-web-services
google-cloud-messaging
amazon-sns
firebase-cloud-messaging
Naroju
sumber
sumber
Jawaban:
FCM kompatibel dengan GCM. Langkah-langkah untuk menyiapkan FCM di AWS identik dengan prosedur penyiapan GCM dan (setidaknya untuk saat ini) FCM bekerja secara transparan dengan GCM dan SNS sehubungan dengan konfigurasi sisi server.
Namun , jika Anda mengirim
data
payload ke perangkat Android, payload tidak akan diproses kecuali Anda menerapkan layanan sisi klien yang diperluasFirebaseMessagingService
. Generator pesan JSON default di konsol AWS mengirimdata
pesan, yang akan diabaikan oleh aplikasi Anda kecuali layanan yang disebutkan di atas diterapkan. Untuk menyiasati hal ini untuk pengujian awal, Anda dapat memberikannotification
payload khusus yang akan diterima oleh perangkat Anda (selama aplikasi Anda tidak berada di latar depan)Ada petunjuk migrasi GCM-FCM yang disediakan oleh Google, namun perubahan yang perlu Anda lakukan sebagian besar ada di sisi Aplikasi.
Langkah-langkah yang perlu Anda ikuti untuk menguji GCM / FCM di aplikasi Anda dengan SNS adalah:
FirebaseInstanceIDService
dan menggantionTokenRefresh
metode untuk melihatnya dalam Aplikasi Android Anda. Setelah Anda selesai melakukannya , uninstal dan instal ulang aplikasi Anda dan token Anda akan dicetak ke konsol Debug di Android Studio pada boot pertama.Pesan yang dihasilkan oleh SNS akan berupa:
Seperti yang kami sebutkan sebelumnya,
data
payload akan diabaikan jika tidak ada layanan untuk menerimanya yang telah diterapkan. Kami ingin menguji tanpa menulis terlalu banyak kode, jadi kami harus mengirimkannotification
payload. Untuk melakukan ini, cukup ubah pesan JSON menjadi:Setelah Anda melakukan ini, pastikan aplikasi Anda tidak berjalan di perangkat, dan tekan tombol Publikasikan Pesan . Anda sekarang harus melihat pemberitahuan muncul di perangkat Anda.
Anda tentu saja dapat melakukan semua ini secara terprogram melalui Amazon SNS API, namun semua contoh tampaknya menggunakan
data
muatan sehingga Anda perlu mengingatnya dan menghasilkan muatan yang sesuai dengan kasus penggunaan Anda.sumber
data
pesan berfungsi dengan baik menggunakan sns meskipun aplikasi klien tidak mengimplementasikan FCM, tetapi GCM. Di aplikasi saya, saya belum mengupgrade ke FCM di sisi klien tetapi FCM yang menggunakan SNS juga berfungsi dengan baik untukdata
pesan. Bukankah seharusnya itu berhasil?Sekarang Anda dapat membuka konsol firebase ( https://console.firebase.google.com/ ) memilih proyek Anda, klik ikon roda gigi dan pilih setelan proyek, lalu klik pada tab perpesanan awan ...
Anda akan melihat Kunci Server lama yang merupakan Kunci API GCM dan Anda akan memiliki opsi untuk membuat Kunci Server baru yang merupakan versi FCM
SNS akan menerima kedua versi tetapi opsi menu mereka masih mengkategorikannya di bawah GCM
Ini gambar untuk referensi Anda:
Perhatikan bahwa Anda dapat "secara tidak sengaja" menghapus Kunci Server Anda, tetapi kunci server Lawas tidak dapat dihapus. Juga, jika Anda mengklik tombol tambahkan kunci server, Anda akan mendapatkan kunci server baru DI BAWAH yang pertama, TANPA PERINGATAN! ... Kerja bagus Google;)
sumber
Saya mencoba menggunakan solusi dengan payload pemberitahuan alih-alih data, tetapi saya tidak menerima pemberitahuan push di perangkat seluler. Saya menemukan tutorial ini https://youtu.be/iBTFLu30dSg dengan subtitle bahasa Inggris tentang cara menggunakan FCM dengan AWS SNS langkah demi langkah dan contoh cara mengirim pemberitahuan push dari konsol AWS dan menerapkannya di php dengan aws php sdk. Itu sangat membantu saya.
sumber
Satu lagi catatan tambahan untuk jawaban bagus Nathan Dunn. Cara mengirim data dengan notifikasi dari SNS ke Firebase.
Kita perlu menambahkan data ke Json (di dalam notifikasi):
Dalam implementasi FirebaseMessagingService Anda (contoh Xamarin)
sumber
Hanya catatan tambahan untuk Jawaban Nathan Dunn: untuk menambahkan suara gunakan pesan JSON berikut
sumber
Butuh beberapa saat bagi saya untuk memikirkan cara mengirim notifikasi dengan muatan yang tepat (publikasikan ke topik). Jadi saya akan taruh di sini.
sumber
Amazon memang mendukung FCM karena semua kode sebelumnya telah dimigrasi dari GCM ke FCM. Artikel di bawah ini menjelaskan secara rinci.
Artikel Diterbitkan oleh Amazon
sumber
Untuk menjawab pertanyaan:
Untuk tutorial mendetail tentang menyiapkan FCM dengan SNS, harap baca artikel ini.
sumber