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 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 uygun gruplara kayıt ekleyebilir/kaldırabilir ve her gruba uygun mesajı gönderebilir. Cihaz grubu mesajlaşması, cihaz gruplarını doğrudan uygulamanız yerine sunucularınızdan yönetmeyi içermesi bakımı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:
Gruba eklemek istediğiniz her cihaz için kayıt belirteçleri edinin.
Belirli bir grubu (genellikle bir kullanıcıyı) grubun tüm ilişkili kayıt belirteçleriyle eşleyerek cihaz grubunu tanımlayan
notification_key
öğesini 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önetim anahtarları .
Uygulama sunucusundaki cihaz gruplarını yönetme
Bir cihaz grubu oluşturma
Bir aygıt grubu oluşturmak için grup için bir ad ve aygıtlar için kayıt belirteçleri listesi 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
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 grup için benzersiz olan 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 belirteci için benzersizdir. Aynı gönderen kimliği için birden fazla istemci uygulamanız varsa, notification_key_name
her istemci uygulaması için 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 için notification_key
ve ilgili 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ına yönelik 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 "bildirim_anahtarı" değeridir.
Bir cihaz grubuna cihaz ekleme ve çıkarma
Mevcut bir gruba cihaz eklemek veya gruptan cihaz çıkarmak için, operation
parametresi add
veya remove
olarak ayarlanmış bir POST isteği gönderin ve ekleme veya çıkarma için kayıt belirteçlerini 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ı
Bir aygıtı eklemeye veya kaldırmaya yönelik başarılı bir istek, aşağıdakine benzer bir notification_key
döndürür:
{ "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ" }
Cihaz grubu yönetimi anahtarları
Aşağıdaki tablo, aygıt grupları oluşturmak ve üye eklemek ve kaldırmak için kullanılan anahtarları listeler.
Tablo 10. Cihaz grubu yönetim anahtarları.
Parametre | kullanım | Tanım |
---|---|---|
operation | gerekli, dizi | Çalıştırılacak işlem.Geçerli değerler şunlardır: create , add ve remove . |
notification_key_name | gerekli, dizi | Oluşturulacak veya değiştirilecek cihaz 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şlemi için yanıtta döndürülür ve aygıt grubunda sonraki tüm işlemler için gereklidir. |
registration_ids | Gerekli, dizi dizisi | Eklenecek veya kaldırılacak cihaz belirteçleri. Bir cihaz grubundan mevcut tüm kayıt jetonlarını kaldırırsanız, FCM cihaz grubunu siler. |
Cihaz gruplarına aşağı akış mesajları 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 eski protokollere dayalı Firebase Admin SDK for Node.js'nin eski sürümlerinden herhangi birini kullanarak cihaz gruplarına gönderim yapıyorsanız, HTTP v1'e geçiş yapmanızı kesinlikle öneririz. İlk fırsatta API . 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