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:
-
Gruba eklemek istediğiniz her cihaz için kayıt jetonları alın.
-
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