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 atau 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 ditambahkan 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. 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 HTTP POST
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.
Menambah dan membuang perangkat dari sebuah 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 HTTP POST
Misalnya, untuk menambahkan perangkat dengan token pendaftaran
bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...
ke appUser-Chris
, kirim
permintaan ini:
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": "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 ke grup perangkat
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