Perpesanan grup perangkat memungkinkan Anda menambahkan beberapa perangkat ke satu grup. Ini mirip dengan perpesanan topik, tetapi menyertakan autentikasi untuk memastikan bahwa keanggotaan grup hanya dikelola oleh server Anda. Misalnya, jika Anda ingin mengirim pesan yang berbeda ke model telepon yang berbeda, server Anda dapat menambah/menghapus pendaftaran ke grup yang sesuai dan mengirim pesan yang sesuai ke setiap grup. Perpesanan grup perangkat berbeda dari perpesanan topik karena melibatkan pengelolaan grup perangkat dari server Anda, bukan langsung di dalam aplikasi Anda.
Anda dapat menggunakan perpesanan grup perangkat melalui protokol XMPP atau HTTP lama di server aplikasi Anda. Versi lama Firebase Admin SDK untuk Node.js didasarkan pada protokol lama dan juga menyediakan kemampuan perpesanan grup perangkat. Jumlah maksimum anggota yang diizinkan untuk kunci notifikasi adalah 20.
Mengelola grup perangkat
Sebelum mengirim pesan ke grup perangkat, Anda harus:
Dapatkan token pendaftaran untuk setiap perangkat yang ingin Anda tambahkan ke grup.
Buat
notification_key
, yang mengidentifikasi grup perangkat dengan memetakan grup tertentu (biasanya pengguna) ke semua token pendaftaran terkait grup. Anda dapat membuat kunci notifikasi di server aplikasi.
Manajemen dasar grup perangkat — membuat dan menghapus grup, serta menambahkan atau menghapus perangkat — dilakukan melalui server aplikasi. Lihat referensi protokol HTTP lawas untuk mengetahui daftar kunci yang didukung.
Mengelola grup perangkat di server aplikasi
Membuat grup perangkat
Untuk membuat grup perangkat, kirim permintaan POST yang memberikan nama grup, dan daftar token pendaftaran untuk perangkat. FCM mengembalikan notification_key
baru yang mewakili grup perangkat.
Permintaan HTTP POST
Kirim permintaan seperti berikut ke https://fcm.googleapis.com/fcm/notification
:
https://fcm.googleapis.com/fcm/notification Content-Type:application/json Authorization:key=API_KEY project_id:SENDER_ID { "operation": "create", "notification_key_name": "appUser-Chris", "registration_ids": ["bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...", "cR1rjyj4_Kc:APA91bGusqbypSuMdsh7jSNrW4nzsM...", ... ]
notification_key_name
adalah nama atau pengidentifikasi (misalnya, dapat berupa nama pengguna) yang unik untuk grup tertentu. notification_key_name
dan notification_key
unik untuk sekelompok token pendaftaran. notification_key_name
harus unik untuk setiap aplikasi klien jika Anda memiliki beberapa aplikasi klien untuk ID pengirim yang sama . Ini memastikan bahwa pesan hanya masuk ke aplikasi target yang dimaksud.
Format respons
Permintaan yang berhasil mengembalikan notification_key
seperti berikut:
{ "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ" }
Simpan notification_key
dan notification_key_name
yang sesuai untuk digunakan dalam operasi berikutnya.
Mengambil kunci notifikasi
Jika Anda perlu mengambil kunci notifikasi yang ada, gunakan notification_key_name
dalam permintaan GET seperti yang ditunjukkan:
https://fcm.googleapis.com/fcm/notification?notification_key_name=appUser-Chris Content-Type:application/json Authorization:key=API_KEY project_id:SENDER_ID {}
Untuk setiap permintaan GET untuk nama kunci notifikasi tertentu, server mengembalikan string unik yang disandikan. Meskipun setiap string tampak seperti kunci yang berbeda, sebenarnya ini adalah nilai `notification_key` yang valid.
Menambahkan dan menghapus perangkat dari grup perangkat
Untuk menambah atau menghapus perangkat dari grup yang sudah ada, kirim permintaan POST dengan parameter operation
yang diatur ke add
atau remove
, dan berikan token pendaftaran untuk penambahan atau penghapusan.
Permintaan HTTP POST
Misalnya, untuk menambahkan perangkat dengan token pendaftaran bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...
ke appUser-Chris
, Anda akan mengirimkan permintaan ini:
{
"operation": "add",
"notification_key_name": "appUser-Chris",
"notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ",
"registration_ids": ["bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."]
}
Format respons
Permintaan yang berhasil untuk menambah atau menghapus perangkat mengembalikan notification_key
seperti berikut:
{ "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ" }
Mengirim pesan downstream ke grup perangkat
Mengirim pesan ke grup perangkat sangat mirip dengan mengirim pesan ke satu perangkat. Setel to
parameter ke kunci notifikasi unik untuk grup perangkat. Lihat Jenis pesan untuk detail tentang dukungan payload. Contoh di halaman ini menunjukkan cara mengirim pesan data ke grup perangkat dalam protokol HTTP dan XMPP lama.
Permintaan HTTP POST Grup Perangkat
https://fcm.googleapis.com/fcm/send Content-Type:application/json Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA { "to": "aUniqueKey", "data": { "hello": "This is a Firebase Cloud Messaging Device Group Message!", } }
Respons HTTP Grup Perangkat
Berikut adalah contoh "berhasil"— notification_key
memiliki 2 token pendaftaran yang terkait dengannya, dan pesan berhasil dikirim ke keduanya:
{ "success": 2, "failure": 0 }
Berikut adalah contoh "berhasil sebagian" — notification_key
memiliki 3 token pendaftaran yang terkait dengannya. Pesan berhasil dikirim hanya ke 1 token pendaftaran. Pesan respons mencantumkan token pendaftaran ( registration_ids
) yang gagal menerima pesan:
{ "success":1, "failure":2, "failed_registration_ids":[ "regId1", "regId2" ] }
Saat pesan gagal dikirim ke satu atau beberapa token pendaftaran yang terkait dengan notification_key
, server aplikasi harus mencoba lagi dengan mundur di antara percobaan ulang.
Jika server mencoba mengirim pesan ke grup perangkat yang tidak memiliki anggota, responsnya terlihat seperti berikut, dengan 0 keberhasilan dan 0 kegagalan:
{ "success": 0, "failure": 0 }
Pesan XMPP Grup Perangkat
<message id=""> <gcm xmlns="google:mobile:data"> { "to": "aUniqueKey", "message_id": "m-1366082849205" , "data": { "hello":"This is a Firebase Cloud Messaging Device Group Message!" } } </gcm> </message>
Respons XMPP Grup Perangkat
Ketika pesan berhasil dikirim ke salah satu perangkat dalam grup, server koneksi XMPP merespons dengan ACK. Jika semua pesan yang dikirim ke semua perangkat dalam grup gagal, server koneksi XMPP merespons dengan NACK.
Berikut adalah contoh "sukses" — notification_key
memiliki 3 token pendaftaran yang terkait dengannya, dan pesan berhasil dikirim ke semuanya:
{ "from": "aUniqueKey", "message_type": "ack", "success": 3, "failure": 0, "message_id": "m-1366082849205" }
Berikut adalah contoh "berhasil sebagian" — notification_key
memiliki 3 token pendaftaran yang terkait dengannya. Pesan berhasil dikirim hanya ke 1 token pendaftaran. Pesan respons mencantumkan token pendaftaran yang gagal menerima pesan:
{ "from": "aUniqueKey", "message_type": "ack", "success":1, "failure":2, "failed_registration_ids":[ "regId1", "regId2" ] }
Saat server koneksi FCM gagal mengirim ke semua perangkat dalam grup. Server aplikasi akan menerima respons nack.
Untuk daftar lengkap opsi pesan, lihat informasi referensi untuk protokol server koneksi pilihan Anda, HTTP atau XMPP .