Ikuti semua informasi yang diumumkan di Firebase Summit, dan pelajari bagaimana Firebase dapat membantu Anda mempercepat pengembangan aplikasi dan menjalankan aplikasi dengan percaya diri. Pelajari Lebih Lanjut

Kirim pesan ke grup perangkat di Android

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

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:

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

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

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

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 .