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 Unity

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

Pesan grup perangkat memungkinkan Anda menambahkan beberapa perangkat ke satu grup. Ini mirip dengan perpesanan topik, tetapi mencakup otentikasi 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 XMPP lama atau protokol HTTP di server aplikasi Anda. Versi lama Firebase Admin SDK untuk Node.js didasarkan pada protokol lama dan juga menyediakan kemampuan pengiriman pesan 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 menambahkan atau menghapus perangkat — dilakukan melalui server aplikasi. Lihat referensi protokol HTTP lama untuk 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 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 pengenal (misalnya, dapat berupa nama pengguna) yang unik untuk grup tertentu. notification_key notification_key_name untuk sekelompok token pendaftaran. notification_key_name harus unik per 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 tanggapan

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 yang diberikan, server mengembalikan string yang disandikan unik. Meskipun setiap string mungkin tampak sebagai kunci yang berbeda, sebenarnya ini adalah nilai `notification_key` yang valid.

Menambah dan menghapus perangkat dari grup perangkat

Untuk menambah atau menghapus perangkat dari grup yang ada, kirim permintaan POST dengan parameter operation yang disetel 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 mengirim permintaan ini:

{
   "operation": "add",
   "notification_key_name": "appUser-Chris",
   "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ",
   "registration_ids": ["bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."]
}

Format tanggapan

Permintaan yang berhasil untuk menambah atau menghapus perangkat akan mengembalikan notification_key seperti berikut:

{
   "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ"
}

Mengirim pesan hilir ke grup perangkat

Mengirim pesan ke grup perangkat sangat mirip dengan mengirim pesan ke perangkat individual. Setel parameter to 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 "keberhasilan sebagian" — notification_key memiliki 3 token pendaftaran yang terkait dengannya. Pesan berhasil dikirim ke 1 token pendaftaran saja. 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 backoff di antara percobaan ulang.

Jika server mencoba mengirim pesan ke grup perangkat yang tidak memiliki anggota, responsnya akan terlihat seperti berikut, dengan 0 berhasil dan 0 gagal:

{
  "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 "keberhasilan sebagian" — notification_key memiliki 3 token pendaftaran yang terkait dengannya. Pesan berhasil dikirim ke 1 token pendaftaran saja. 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 .

Mengirim pesan upstream ke grup perangkat

Aplikasi klien dapat mengirim pesan upstream ke grup perangkat dengan menargetkan pesan ke kunci notifikasi yang sesuai di bidang to .

Panggilan ke FCM berikut mengirimkan pesan upstream ke kunci notifikasi.

Firebase.Messaging.Message message;
message.To = notification_key;
message.MessageId = a_unique_message_id;
message.Data["hello"] = "world";
Firebase.Messaging.FirebaseMessaging.Send(message);
,

Pesan grup perangkat memungkinkan Anda menambahkan beberapa perangkat ke satu grup. Ini mirip dengan perpesanan topik, tetapi mencakup otentikasi 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 XMPP lama atau protokol HTTP di server aplikasi Anda. Versi lama Firebase Admin SDK untuk Node.js didasarkan pada protokol lama dan juga menyediakan kemampuan pengiriman pesan 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 menambahkan atau menghapus perangkat — dilakukan melalui server aplikasi. Lihat referensi protokol HTTP lama untuk 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 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 pengenal (misalnya, dapat berupa nama pengguna) yang unik untuk grup tertentu. notification_key notification_key_name untuk sekelompok token pendaftaran. notification_key_name harus unik per 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 tanggapan

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 yang diberikan, server mengembalikan string yang disandikan unik. Meskipun setiap string mungkin tampak sebagai kunci yang berbeda, sebenarnya ini adalah nilai `notification_key` yang valid.

Menambah dan menghapus perangkat dari grup perangkat

Untuk menambah atau menghapus perangkat dari grup yang ada, kirim permintaan POST dengan parameter operation yang disetel 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 mengirim permintaan ini:

{
   "operation": "add",
   "notification_key_name": "appUser-Chris",
   "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ",
   "registration_ids": ["bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."]
}

Format tanggapan

Permintaan yang berhasil untuk menambah atau menghapus perangkat akan mengembalikan notification_key seperti berikut:

{
   "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ"
}

Mengirim pesan hilir ke grup perangkat

Mengirim pesan ke grup perangkat sangat mirip dengan mengirim pesan ke perangkat individual. Setel parameter to 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 "keberhasilan sebagian" — notification_key memiliki 3 token pendaftaran yang terkait dengannya. Pesan berhasil dikirim ke 1 token pendaftaran saja. 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 backoff di antara percobaan ulang.

Jika server mencoba mengirim pesan ke grup perangkat yang tidak memiliki anggota, responsnya akan terlihat seperti berikut, dengan 0 berhasil dan 0 gagal:

{
  "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 "keberhasilan sebagian" — notification_key memiliki 3 token pendaftaran yang terkait dengannya. Pesan berhasil dikirim ke 1 token pendaftaran saja. 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 .

Mengirim pesan upstream ke grup perangkat

Aplikasi klien dapat mengirim pesan upstream ke grup perangkat dengan menargetkan pesan ke kunci notifikasi yang sesuai di bidang to .

Panggilan ke FCM berikut mengirimkan pesan upstream ke kunci notifikasi.

Firebase.Messaging.Message message;
message.To = notification_key;
message.MessageId = a_unique_message_id;
message.Data["hello"] = "world";
Firebase.Messaging.FirebaseMessaging.Send(message);