Unity'deki cihaz gruplarına mesaj gönderin

Cihaz grubu mesajlaşması, tek bir gruba birden fazla cihaz eklemenize olanak tanır. Bu, konu mesajlarına benzer ancak grup üyeliğinin yalnızca sunucularınız tarafından yönetildiğinden emin olmak için kimlik doğrulamayı içerir. Örneğin, farklı telefon modellerine farklı mesajlar göndermek istiyorsanız sunucularınız uygun gruplara kayıt ekleyebilir/kaldırabilir ve her bir gruba uygun mesajı gönderebilir. Cihaz grubu mesajları, cihaz gruplarının doğrudan uygulamanız yerine sunucularınızdan yönetilmesini sağlaması açısından konu mesajlarından farklıdır.

Bildirim anahtarı için izin verilen maksimum üye sayısı 20'dir.

Cihaz gruplarını yönetme

Bir cihaz grubuna mesaj göndermeden önce:

  1. Gruba eklemek istediğiniz her cihaz için kayıt jetonları edinin.

  2. Belirli bir grubu (genellikle bir kullanıcı) grubun tüm ilişkili kayıt jetonlarıyla eşleyerek cihaz grubunu tanımlayan notification_key oluşturun. Uygulama sunucusunda bildirim anahtarları oluşturabilirsiniz.

Cihaz gruplarının temel yönetimi (grup oluşturma ve kaldırma, cihaz ekleme veya kaldırma), gönderme isteklerini yetkilendirmek için kısa ömürlü jetonlar kullanılarak HTTP v1 API aracılığıyla gerçekleştirilir. Desteklenen anahtarların listesi için Cihaz grubu yönetimi anahtarları başlıklı makaleyi inceleyin.

Uygulama sunucusundaki cihaz gruplarını yönetme

Cihaz grubu oluşturma

Cihaz grubu oluşturmak için grubun adını ve cihazların kayıt jetonlarının listesini içeren bir POST isteği gönderin. FCM, cihaz grubunu temsil eden yeni bir notification_key döndürür.

HTTP POST isteği

https://fcm.googleapis.com/fcm/notification adlı alıcı için aşağıdaki gibi bir istek gönderin:

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, belirli bir gruba özgü olan ad veya tanımlayıcıdır (ör. bir kullanıcı adı olabilir). notification_key_name ve notification_key, bir kayıt jetonları grubu için benzersizdir. Aynı gönderen kimliği için birden fazla istemci uygulamanız varsa notification_key_name değerinin her istemci uygulaması için benzersiz olması önemlidir. Bu, mesajların yalnızca istenen hedef uygulamaya gitmesini sağlar.

Yanıt biçimi

Başarılı bir istek, aşağıdakine benzer bir notification_key döndürür:

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

Sonraki işlemlerde kullanmak üzere notification_key ve ilgili notification_key_name öğelerini kaydedin.

Bildirim anahtarı alma

Mevcut bir bildirim anahtarını almanız gerekiyorsa notification_key_name öğesini aşağıdaki gibi bir GET isteğinde kullanın:

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
{}

Belirli bir bildirim anahtarı adına yönelik her GET isteği için sunucu benzersiz kodlanmış bir dize döndürür. Her dize farklı bir anahtar gibi görünse de aslında geçerli bir "bildirim_anahtarı" değeridir.

Cihaz grubuna cihaz ekleme ve gruptan cihaz kaldırma

Mevcut bir gruba cihaz eklemek veya gruptan cihaz kaldırmak için operation parametresinin add veya remove olarak ayarlandığı bir POST isteği gönderin ve ekleme ya da kaldırma işleminde kullanılacak kayıt jetonlarını sağlayın.

HTTP POST isteği

Örneğin, appUser-Chris hizmetine bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1... kayıt jetonuna sahip bir cihaz eklemek için şu isteği gönderirsiniz:

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

Yanıt biçimi

Başarılı bir cihaz ekleme veya kaldırma isteği aşağıdaki gibi bir notification_key döndürür:

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

Cihaz grubu yönetimi anahtarları

Aşağıdaki tabloda, cihaz grubu oluşturma ve üye ekleme ve kaldırma ile ilgili anahtarlar listelenmiştir.

Tablo 10. Cihaz grubu yönetimi anahtarları.

Parametre Kullanım Açıklama
operation Zorunlu, dize Çalıştırılacak işlem.Geçerli değerler create, add ve remove şeklindedir.
notification_key_name Zorunlu, dize Oluşturulacak veya değiştirilecek cihaz grubunun kullanıcı tanımlı adı.
notification_key Zorunlu (create işlemi hariç, dize Cihaz grubunun benzersiz tanımlayıcısı. Bu değer, başarılı bir create işlemi için yanıt olarak döndürülür ve cihaz grubunda yapılan sonraki tüm işlemler için gereklidir.
registration_ids Zorunlu, dize dizisi Eklenecek veya kaldırılacak cihaz jetonları. Bir cihaz grubundaki mevcut tüm kayıt jetonlarını kaldırırsanız FCM, cihaz grubunu siler.

Aşağı akış mesajlarını cihaz gruplarına gönderme

Cihaz gruplarına mesaj göndermek için HTTP v1 API'yi kullanın. Şu anda HTTP veya XMPP için desteği sonlandırılmış eski gönderme API'lerini ya da Node.js için Firebase Yönetici SDK'sının eski protokolleri temel alan eski sürümlerinden birini kullanarak cihaz gruplarına gönderim yapıyorsanız en kısa sürede HTTP v1 API'ye geçmenizi önemle tavsiye ederiz. Eski gönderme API'leri Haziran 2024'te devre dışı bırakılacak ve kaldırılacaktır.

Bir cihaz grubuna mesaj göndermek, gönderme isteklerini yetkilendirmek için aynı yöntemi kullanarak tek bir cihaza mesaj göndermeye benzer. token alanını grup bildirimi anahtarına ayarlayın:

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!"
      }
   }
}

cURL komutu

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

Yukarı akış mesajları cihaz gruplarına gönderiliyor

İstemci uygulamaları, mesajları to alanındaki uygun bildirim anahtarına hedefleyerek cihaz gruplarına yayın öncesi mesaj gönderebilir.

FCM'ye yapılan aşağıdaki çağrı, bir bildirim anahtarına yukarı akış mesajı gönderir.

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