Web/JavaScript'te cihaz gruplarına mesaj gönderme

Cihaz grubu mesajlaşması, tek bir gruba birden fazla cihaz eklemenize olanak tanır. Bu, konu mesajlaşmasına benzer ancak grup üyeliğinin yalnızca sunucularınız tarafından yönetilmesini sağlamak için kimlik doğrulama içerir. Örneğin, farklı telefon modellerine farklı mesajlar göndermek istiyorsanız sunucularınız kayıtları uygun gruplara ekleyip kaldırabilir ve her gruba uygun mesajı gönderebilir. Cihaz grubu mesajlaşması, konu mesajlaşmasından farklı olarak cihaz gruplarının doğrudan uygulamanızda değil, sunucularınızdan yönetilmesini içerir.

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ı yapmanız gerekir:

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

  2. Belirli bir grubu (genellikle kullanıcı) grubun ilişkili tüm 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 (grupları oluşturma ve kaldırma, cihaz ekleme veya kaldırma) HTTP v1 API aracılığıyla gerçekleştirilir. Bu işlemde, gönderme isteklerini yetkilendirmek için kısa ömürlü jetonlar kullanılır. Desteklenen anahtarların listesi için Cihaz grubu yönetim anahtarları başlıklı makaleyi inceleyin.

Uygulama sunucusunda cihaz gruplarını yönetme

Cihaz grubu oluşturma

Cihaz grubu oluşturmak için gruba ad ve cihazların kayıt jetonlarının listesini sağlayan 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 uygulamasına 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ü bir ad veya tanımlayıcıdır (ör. kullanıcı adı olabilir). notification_key_name ve notification_key, bir kayıt jetonu grubuna özgüdür. 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 sayede iletiler yalnızca hedeflenen uygulamaya gider.

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 değerini kaydedin.

Bildirim anahtarı alma

Mevcut bir bildirim anahtarını almanız gerekiyorsa gösterildiği gibi bir GET isteğinde notification_key_name 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ğinde 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.

Cihaz grubuna cihaz ekleme ve cihaz grubundan cihaz kaldırma

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

HTTP POST isteği

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

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

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

Cihaz grubu yönetim anahtarları

Aşağıdaki tabloda, cihaz grupları oluşturma ve üye ekleme/kaldırma işlemleri için kullanılan anahtarlar listelenmiştir.

Tablo 10. Cihaz grubu yönetim anahtarları.

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

Cihaz gruplarına aşağı akış iletileri gönderme

Cihaz grubuna mesaj gönderme işlemi, gönderme isteklerini yetkilendirmek için aynı yöntem kullanılarak tek bir cihaza mesaj göndermeye çok benzer. token alanını grup bildirimi anahtarı olarak 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