Android'deki cihaz gruplarına mesaj gönderin

Cihaz grubu mesajlaşması, tek bir gruba birden fazla cihaz eklemenizi sağlar. Bu, konu mesajlaşmasına benzer ancak grup üyeliğinin yalnızca sizin 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 ekleyip/kaldırabilir ve her gruba uygun mesajı gönderebilir. Cihaz grubu mesajlaşması, cihaz gruplarını doğrudan uygulamanızın içinden yönetmek yerine sunucularınızdan yönetmeyi içermesi açısından konu mesajlaşmasından farklıdır.

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

Cihaz gruplarını yönetme

Bir cihaz grubuna mesaj göndermeden önce şunları yapmalısınız:

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

  2. Belirli bir grubu (genellikle bir kullanıcı) grubun tüm ilişkili kayıt belirteçleriyle 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 ve cihaz ekleme veya kaldırma), gönderme isteklerini yetkilendirmek için kısa ömürlü belirteçler kullanılarak HTTP v1 API aracılığıyla gerçekleştirilir. Desteklenen anahtarların listesi için bkz. Cihaz grubu yönetimi anahtarları .

Uygulama sunucusundaki cihaz gruplarını yönetme

Cihaz grubu oluşturma

Bir cihaz grubu oluşturmak için gruba bir ad ve cihazlara ilişkin kayıt belirteçlerinin listesini sağlayan bir POST isteği gönderin. FCM, aygıt grubunu temsil eden yeni bir notification_key döndürür.

HTTP POST isteği

https://fcm.googleapis.com/fcm/notification adresine aşağıdakine benzer 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ü bir ad veya tanımlayıcıdır (örneğin, bir kullanıcı adı olabilir). notification_key_name ve notification_key bir grup kayıt jetonu için benzersizdir. Aynı gönderen kimliği için birden fazla istemci uygulamanız varsa, notification_key_name istemci uygulaması başına benzersiz olması önemlidir. Bu, mesajların yalnızca amaçlanan hedef uygulamaya gitmesini sağlar.

Yanıt formatı

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 karşılık gelen notification_key_name kaydedin.

Bildirim anahtarı alma

Mevcut bir bildirim anahtarını almanız gerekiyorsa, bir GET isteğinde notification_key_name gösterildiği gibi 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ı için her GET isteği için sunucu, benzersiz bir kodlanmış dize döndürür. Her dize farklı bir anahtar gibi görünse de aslında geçerli bir "notification_key" değeridir.

Bir aygıt grubuna aygıt ekleme ve bu gruptan aygıtları kaldırma

Mevcut bir gruba cihaz eklemek veya mevcut bir gruptan cihaz kaldırmak için, operation parametresi add veya remove olarak ayarlanmış bir POST isteği gönderin ve ekleme veya çıkarma için kayıt jetonlarını sağlayın.

HTTP POST isteği

Örneğin, bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1... kayıt belirtecine sahip bir cihazı appUser-Chris 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 formatı

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

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

Cihaz grubu yönetimi anahtarları

Aşağıdaki tabloda, aygıt grupları oluşturmaya ve üye ekleme ve kaldırmaya ilişkin tuşlar listelenmektedir.

Tablo 10. Cihaz grubu yönetimi anahtarları.

Parametre Kullanım Tanım
operation Gerekli, dize Çalıştırma işlemi. Geçerli değerler, create , add ve remove .
notification_key_name Gerekli, dize Oluşturulacak veya değiştirilecek aygıt grubunun kullanıcı tanımlı adı.
notification_key Gerekli ( create işlemi hariç, dize Cihaz grubunun benzersiz tanımlayıcısı. Bu değer, başarılı bir create işlemine yanıt olarak döndürülür ve aygıt grubundaki sonraki tüm işlemler için gereklidir.
registration_ids Gerekli, dize dizisi Eklenecek veya kaldırılacak cihaz belirteçleri. Bir cihaz grubundan mevcut tüm kayıt belirteçlerini kaldırırsanız FCM, cihaz grubunu siler.

Cihaz gruplarına mesaj gönderme

Cihaz gruplarına mesaj göndermek için HTTP v1 API'sini kullanın. Şu anda HTTP veya XMPP için kullanımdan kaldırılmış eski gönderme API'lerini veya Node.js için Firebase Admin SDK'nın eski protokollere dayalı eski sürümlerinden herhangi birini kullanarak cihaz gruplarına gönderim yapıyorsanız, HTTP v1'e geçiş yapmanızı kesinlikle öneririz. API'yi ilk fırsatta kullanın. 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 çok benzer. token alanını grup bildirim anahtarına ayarlayın:

DİNLENMEK

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