Mengirim pesan ke grup perangkat di Web/JavaScript

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:

  1. Memperoleh token pendaftaran untuk setiap perangkat yang ingin Anda tambahkan ke grup.

  2. 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.

Tabel 10. Kunci pengelolaan grup perangkat.

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