Dengan pengiriman pesan ke grup perangkat, Anda dapat menambahkan beberapa perangkat ke satu grup. Kemampuan ini mirip dengan pengiriman pesan menurut topik, tetapi yang ini mencakup autentikasi untuk memastikan bahwa keanggotaan grup hanya dikelola oleh server Anda. Misalnya, jika Anda ingin mengirim berbagai pesan ke model ponsel berbeda, server Anda dapat menambahkan/menghapus pendaftaran ke grup yang sesuai dan mengirim pesan yang sesuai ke setiap grup. Pengiriman pesan ke grup perangkat berbeda dengan pengiriman pesan menurut topik karena grup perangkat dikelola dari server Anda, bukan langsung di aplikasi.
Jumlah anggota maksimum yang diizinkan untuk kunci notifikasi adalah 20.
Mengelola grup perangkat
Sebelum mengirim pesan ke grup perangkat, Anda harus:
-
Memperoleh token pendaftaran untuk setiap perangkat yang ingin Anda tambahkan ke grup.
-
Membuat
notification_key
, yang mengidentifikasi grup perangkat dengan memetakan grup tertentu (biasanya pengguna) ke semua token pendaftaran terkait milik grup. Anda dapat membuat kunci notifikasi pada server aplikasi.
Pengelolaan dasar grup perangkat — membuat dan menghapus grup, serta menambahkan atau menghapus perangkat — dilakukan melalui HTTP v1 API, menggunakan token berjangka pendek untuk mengizinkan permintaan kirim Google. Buka Kunci pengelolaan grup perangkat untuk melihat daftar kunci yang didukung.
Mengelola grup perangkat di server aplikasi
Membuat grup perangkat
Untuk membuat grup perangkat, kirim permintaan POST yang memberikan nama untuk grup tersebut, dan daftar token pendaftaran untuk perangkat tersebut.
FCM menampilkan notification_key
baru yang mewakili grup perangkat.
Permintaan POST HTTP
Kirim permintaan seperti berikut ini ke
https://fcm.googleapis.com/fcm/notification
:
https://fcm.googleapis.com/fcm/notification Content-Type:application/json access_token_auth: true Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA 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 ID (misalnya, dapat berupa nama pengguna) yang unik untuk suatu grup. notification_key_name
dan notification_key
bersifat unik untuk grup token pendaftaran. notification_key_name
harus bersifat unik untuk setiap aplikasi klien jika Anda memiliki beberapa aplikasi klien untuk ID pengirim yang sama.
Hal ini untuk memastikan bahwa pesan hanya disampaikan ke aplikasi sasaran yang dimaksud.
Format respons
Permintaan yang berhasil akan menampilkan 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 perlu mengambil kunci notifikasi yang ada, gunakan notification_key_name
dalam permintaan GET seperti yang ditunjukkan berikut ini:
https://fcm.googleapis.com/fcm/notification?notification_key_name=appUser-Chris Content-Type:application/json access_token_auth: true Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA project_id:SENDER_ID {}
Pada setiap permintaan GET untuk mendapatkan nama kunci notifikasi tertentu, server akan menampilkan string berenkode unik. Meskipun mungkin tampak seperti kunci yang berbeda, setiap string sebenarnya merupakan nilai `notification_key` yang valid.
Menambahkan dan menghapus perangkat dari grup perangkat
Untuk menambahkan atau menghapus perangkat dari grup yang ada, kirim permintaan POST dengan menyetel parameter operation
ke add
atau remove
, dan berikan token pendaftaran untuk penambahan atau penghapusan.
Permintaan POST HTTP
Misalnya, untuk menambahkan perangkat dengan token pendaftaran bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...
ke appUser-Chris
, kirim permintaan ini:
{
"operation": "add",
"notification_key_name": "appUser-Chris",
"notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ",
"registration_ids": ["bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."]
}
Format respons
Permintaan yang berhasil untuk menambahkan atau menghapus perangkat akan menampilkan notification_key
seperti berikut:
{ "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ" }
Kunci pengelolaan grup perangkat
Tabel berikut ini berisi kunci untuk membuat grup perangkat dan menambah serta menghapus anggota.
Parameter | Penggunaan | Deskripsi |
---|---|---|
operation |
Wajib, string | Operasi yang akan dijalankan. Nilai yang valid adalah create , add , dan remove . |
notification_key_name |
Wajib, string | Nama grup perangkat buatan pengguna yang bisa dibuat atau diubah. |
notification_key |
Wajib (kecuali untuk operasi create ), string |
ID unik untuk grup perangkat. Nilai ini ditampilkan sebagai respons untuk operasi create yang berhasil, dan diperlukan untuk semua operasi berikutnya pada grup perangkat. |
registration_ids |
Opsional, array string | Token perangkat yang akan ditambahkan atau dihapus. Jika Anda menghapus semua token pendaftaran yang ada dari grup perangkat, FCM akan menghapus grup perangkat tersebut. |
Mengirim pesan downstream ke grup perangkat
Untuk mengirim pesan ke grup perangkat, gunakan HTTP v1 API. Jika saat ini Anda mengirimkan ke grup perangkat menggunakan API pengiriman lama yang tidak digunakan lagi untuk HTTP atau XMPP, atau salah satu versi lama dari Firebase Admin SDK untuk Node.js berdasarkan protokol lama, sebaiknya Anda memigrasi ke HTTP v1 API secepatnya. API pengiriman lama akan dinonaktifkan dan dihapus pada Juni 2024.
Mengirim pesan ke grup perangkat sangat mirip dengan mengirim pesan ke satu perangkat, menggunakan metode yang sama untuk mengizinkan permintaan kirim. Tetapkan kolom token
ke kunci notifikasi grup:
REST
POST https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:send HTTP/1.1
Content-Type: application/json
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
{
"message":{
"token":"APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ",
"data":{
"hello": "This is a Firebase Cloud Messaging device group message!"
}
}
}
Perintah cURL
curl -X POST -H "Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA" -H "Content-Type: application/json" -d '{
"message":{
"data":{
"hello": "This is a Firebase Cloud Messaging device group message!"
},
"token":"APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ"
}}' https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:send