Kaynak: Mesaj
Firebase Cloud Messaging Service tarafından gönderilecek mesaj.
JSON gösterimi |
---|
{ "name": string, "data": { string: string, ... }, "notification": { object ( |
Alanlar | |
---|---|
name |
Yalnızca çıkış. Gönderilen mesajın |
data |
Yalnızca giriş. UTF-8 kodlu olması gereken rastgele anahtar/değer yükü. Anahtar, ayrılmış bir kelime ("from", "message_type" veya "google." ya da "gcm.notification." ile başlayan herhangi bir kelime) olmamalıdır. iOS cihazlara yalnızca veri alanları içeren yük gönderirken
|
notification |
Yalnızca giriş. Tüm platformlarda kullanılan temel bildirim şablonu. |
android |
Yalnızca giriş. FCM bağlantı sunucusu üzerinden gönderilen iletiler için Android'e özel seçenekler. |
webpush |
Yalnızca giriş. Webpush protokolü seçenekleri. |
apns |
Yalnızca giriş. Apple Anında Bildirim Hizmeti'ne özel seçenekler |
fcm_options |
Yalnızca giriş. Tüm platformlarda kullanılacak FCM SDK özellik seçenekleri için şablon. |
Birleştirme alanı target . Zorunlu. Yalnızca giriş. Mesajın gönderileceği hedef. target şunlardan yalnızca biri olabilir: |
|
token |
Mesaj gönderilecek kayıt jetonu |
topic |
Mesaj gönderilecek konu adı, ör. "hava durumu". Not: "/topics/" öneki sağlanmamalıdır. |
condition |
Mesaj gönderme koşulu, ör. "foo" konu başlıklarında && "bar" inceleyebilirsiniz. |
Bildirim
Tüm platformlarda kullanılan temel bildirim şablonu.
JSON gösterimi |
---|
{ "title": string, "body": string, "image": string } |
Alanlar | |
---|---|
title |
Bildirimin başlığı. |
body |
Bildirimin gövde metni. |
image |
Cihaza indirilecek ve bir bildirimde gösterilecek bir resmin URL'sini içerir. JPEG, PNG ve BMP tüm platformlarda tam destek sunar. Animasyonlu GIF ve video yalnızca iOS'te çalışır. WebP ve HEIF, platformlar ve platform sürümlerinde farklı destek düzeylerine sahiptir. Android'de 1 MB resim boyutu sınırı vardır. Firebase Storage'da resim barındırmanın kota kullanımı ve etkileri/maliyetleri: https://firebase.google.com/pricing |
AndroidConfig
FCM bağlantı sunucusu üzerinden gönderilen iletiler için Android'e özel seçenekler.
JSON gösterimi |
---|
{ "collapse_key": string, "priority": enum ( |
Alanlar | |
---|---|
collapse_key |
Daraltılabilen bir ileti grubunun tanımlayıcısı. Böylece, teslim devam ettirilebilecekse yalnızca son ileti gönderilir. Herhangi bir zamanda en fazla 4 farklı daraltma anahtarına izin verilir. |
priority |
Mesaj önceliği. "Normal" kabul edilebilir ve "high" değerler. Daha fazla bilgi için Bir iletinin önceliğini ayarlama başlıklı makaleye bakın. |
ttl |
Cihaz çevrimdışıysa mesajın FCM depolama alanında ne kadar süre (saniye cinsinden) saklanması gerektiği. Desteklenme süresi maksimum 4 haftadır. Ayarlanmazsa varsayılan değer 4 haftadır. İletiyi hemen göndermek istiyorsanız bu değeri 0 olarak ayarlayın. JSON biçiminde, Duration türü bir nesne yerine bir dize olarak kodlanır. Bu durumda dize, "s" sonekiyle biter (saniyeyi gösterir) ve öncesinde saniye sayısı bulunur. Nanosaniye, kesirli saniye olarak ifade edilir. Örneğin, 0 nanosaniyeli 3 saniye JSON biçiminde "3 sn", 3 saniye ve 1 nanosaniye JSON biçiminde "3,000000001 sn" olarak kodlanmalıdır. Ttl en yakın saniyeye yuvarlanır. En fazla dokuz kesir basamağı olan ve " |
restricted_package_name |
Mesajı almak için kayıt jetonunun eşleşmesi gereken uygulamanın paket adı. |
data |
Rastgele anahtar/değer yükü. Bu parametre mevcutsa
|
notification |
Android cihazlara gönderilecek bildirim. |
fcm_options |
Android için FCM SDK'sı tarafından sağlanan özelliklerle ilgili seçenekler. |
direct_boot_ok |
Politika, Doğru değerine ayarlanırsa cihaz doğrudan başlatma modundayken mesajların uygulamaya teslim edilmesine izin verilir. Destek Doğrudan Başlatma modu başlıklı makaleye göz atın. |
AndroidMesaj Önceliği
Android cihazlara gönderilecek mesajın önceliği. Bu önceliğin, mesajın ne zaman teslim edileceğini kontrol eden bir FCM kavramı olduğunu unutmayın. FCM kılavuzlarına bakın. Buna ek olarak, hedeflenen Android cihazlarda Android Notification.NotificationPriority kullanarak bildirim görüntüleme önceliğini belirleyebilirsiniz.
Sıralamalar | |
---|---|
NORMAL |
Veri mesajları için varsayılan öncelik. Normal öncelikli iletiler uyku modunda olan bir cihazdaki ağ bağlantılarını açmaz ve pil tasarrufu için iletilerin teslimi gecikebilir. Yeni e-posta bildirimleri veya senkronize edilecek diğer veriler gibi zamana duyarlı olmayan iletiler için normal teslim önceliğini seçin. |
HIGH |
Bildirim mesajları için varsayılan öncelik. FCM, yüksek öncelikli mesajları hemen iletmeyi dener. Böylece, FCM hizmetinin mümkün olduğunda uykudaki bir cihazı uyandırıp uygulama sunucunuza bir ağ bağlantısı açmasına izin verir. Örneğin anlık mesajlaşma, sohbet veya sesli arama uyarıları içeren uygulamaların genellikle bir ağ bağlantısı açması ve FCM'nin mesajı cihaza gecikmeden teslim etmesini sağlaması gerekir. Mesaj zaman açısından kritikse ve kullanıcının hemen etkileşim kurmasını gerektiriyorsa yüksek önceliği ayarlayın. Ancak, iletilerinizi yüksek öncelikli olarak ayarlamanın, normal öncelikli mesajlara kıyasla pil tüketimine daha fazla katkıda bulunduğunu unutmayın. |
AndroidBildirimi
Android cihazlara gönderilecek bildirim.
JSON gösterimi |
---|
{ "title": string, "body": string, "icon": string, "color": string, "sound": string, "tag": string, "click_action": string, "body_loc_key": string, "body_loc_args": [ string ], "title_loc_key": string, "title_loc_args": [ string ], "channel_id": string, "ticker": string, "sticky": boolean, "event_time": string, "local_only": boolean, "notification_priority": enum ( |
Alanlar | |
---|---|
title |
Bildirimin başlığı. Bu parametre mevcutsa |
body |
Bildirimin gövde metni. Bu parametre mevcutsa |
icon |
Bildirimin simgesi. Çekilebilir kaynak myicon için bildirim simgesini myicon olarak ayarlar. İstekte bu anahtarı göndermezseniz FCM, uygulama manifestinizde belirtilen başlatıcı simgesini gösterir. |
color |
Bildirimin, #rrggbb biçiminde ifade edilen simge rengi. |
sound |
Cihaz bildirimi aldığında çalacak ses. "Varsayılan" değerini destekler veya uygulamada paket halinde sunulan bir ses kaynağının dosya adı. Ses dosyaları /res/raw/ klasöründe bulunmalıdır. |
tag |
Bildirim çekmecesindeki mevcut bildirimleri değiştirmek için kullanılan tanımlayıcı. Belirtilmezse her istek yeni bir bildirim oluşturur. Belirtilmişse ve aynı etikete sahip bir bildirim zaten gösteriliyorsa yeni bildirim, bildirim çekmecesindeki mevcut bildirimin yerini alır. |
click_action |
Kullanıcının bildirimi tıklamasıyla ilişkilendirilen işlem. Belirtilirse kullanıcı bildirimi tıkladığında eşleşen intent filtresine sahip bir etkinlik başlatılır. |
body_loc_key |
Gövde metnini kullanıcının mevcut yerelleştirmesine göre yerelleştirmek için kullanılacak, uygulamanın dize kaynaklarındaki gövde dizesinin anahtarı. Daha fazla bilgi için Dize Kaynakları bölümüne bakın. |
body_loc_args[] |
Gövde metnini kullanıcının geçerli yerelleştirmesine göre yerelleştirmek için kullanılacak, body_loc_key içindeki biçim belirteçlerin yerine kullanılacak değişken dize değerleri. Daha fazla bilgi için Biçimlendirme ve Stil bölümüne bakın. |
title_loc_key |
Başlık metnini kullanıcının mevcut yerelleştirmesine göre yerelleştirmek için kullanılacak, uygulamanın dize kaynaklarındaki başlık dizesinin anahtarı. Daha fazla bilgi için Dize Kaynakları bölümüne bakın. |
title_loc_args[] |
Başlık metnini kullanıcının mevcut yerelleştirmesine göre yerelleştirmek için kullanılacak, title_loc_key öğesindeki biçim belirteçlerinin yerine kullanılacak değişken dize değerleri. Daha fazla bilgi için Biçimlendirme ve Stil bölümüne bakın. |
channel_id |
Bildirimin kanal kimliği (Android O'da yeni). Bu kanal kimliğine sahip herhangi bir bildirim alınmadan önce uygulamanın bu kanal kimliğiyle bir kanal oluşturması gerekir. İstekte bu kanal kimliğini göndermezseniz veya sağlanan kanal kimliği henüz uygulama tarafından oluşturulmamışsa FCM, uygulama manifest dosyasında belirtilen kanal kimliğini kullanır. |
ticker |
"Sohbet şeridi"ni ayarlar erişilebilirlik hizmetlerine gönderilir. API düzeyi 21'den ( |
sticky |
Politika, Yanlış değerine ayarlanır veya ayarlanmadan bırakılırsa kullanıcı panelde tıkladığında bildirim otomatik olarak kapatılır. Politika, Doğru değerine ayarlandığında kullanıcı tıklasa bile bildirim gösterilmeye devam eder. |
event_time |
Bildirimdeki etkinliğin gerçekleştiği zamanı ayarlayın. Paneldeki bildirimler bu zamana göre sıralanır. Belirli bir zaman, protobuf.Timestamp kullanılarak gösterilir. RFC3339 UTC "Zulu" zaman damgası biçiminde olmalıdır. Örnekler: |
local_only |
Bu bildirimin yalnızca geçerli cihazla alakalı olup olmadığını ayarlayın. Bazı bildirimler, uzak görüntüleme için Wear OS kol saati gibi diğer cihazlara köprü olarak eklenebilir. Bu ipucu, bu bildirimin köprü görevini üstlenmemesi için ayarlanabilir. Wear OS kılavuzlarına bakın. |
notification_priority |
Bu bildirim için göreli önceliği ayarlayın. Öncelik, bu bildirimin kullanıcının dikkatini ne kadar dikkat etmesi gerektiğinin bir göstergesidir. Belirli durumlarda düşük öncelikli bildirimler kullanıcıdan gizlenebilirken kullanıcının daha yüksek öncelikli bildirimlerde çalışması kesintiye uğrayabilir. Aynı öncelikleri ayarlamanın etkisi, farklı platformlarda biraz farklılık gösterebilir. Bu önceliğin |
default_sound |
Doğru değerine ayarlanırsa bildirim için Android çerçevesinin varsayılan sesini kullanın. Varsayılan değerler config.xml dosyasında belirtilmiştir. |
default_vibrate_timings |
Doğru değerine ayarlanırsa bildirim için Android çerçevesinin varsayılan titreşim desenini kullanın. Varsayılan değerler config.xml dosyasında belirtilmiştir. |
default_light_settings |
Doğru değerine ayarlanırsa bildirim için Android çerçevesinin varsayılan LED ışık ayarlarını kullanın. Varsayılan değerler config.xml dosyasında belirtilmiştir. |
vibrate_timings[] |
Kullanılacak titreşim modelini ayarlayın. Titreşimi açmak veya kapatmak için bir protobuf.Duration dizisi sağlayın. İlk değer, titreşimi açmadan önce beklemesi gereken En fazla dokuz kesir basamağı olan ve " |
visibility |
Bildirimin Notification.visibility değerini ayarlayın. |
notification_count |
Bu bildirimin temsil ettiği öğe sayısını ayarlar. Rozetleri destekleyen başlatıcılarda rozet sayısı olarak gösterilebilir.Bildirim Rozeti'ni inceleyin. Örneğin, birden çok yeni iletiyi temsil etmesi için yalnızca bir bildirim kullanıyorsanız ancak buradaki sayının toplam yeni ileti sayısını temsil etmesini istiyorsanız bu yararlı olabilir. Sıfır veya belirtilmemişse rozeti destekleyen sistemler varsayılanı kullanır. Bu, uzun basma menüsünde yeni bir bildirim geldiğinde gösterilen sayıyı artırmaktır. |
light_settings |
Cihazda LED kullanılabiliyorsa bildirimin LED yanıp sönme hızını ve rengini kontrol etmek için kullanılan ayarlar. Toplam yanıp sönme süresi işletim sistemi tarafından kontrol edilir. |
image |
Bir bildirimde gösterilecek bir resmin URL'sini içerir. Bu parametre mevcutsa |
bypass_proxy_notification |
Ayarlanırsa cihaza gönderilen ekran bildirimleri, proxy yerine uygulama tarafından işlenir. |
proxy |
Bir bildirimin proxy'de ne zaman kullanılabileceğini kontrol etme ayarı. |
Bildirim Önceliği
Bir bildirimin öncelik düzeyleri.
Sıralamalar | |
---|---|
PRIORITY_UNSPECIFIED |
Öncelik belirtilmemişse bildirim önceliği PRIORITY_DEFAULT olarak ayarlanır. |
PRIORITY_MIN |
En düşük bildirim önceliği. Bu PRIORITY_MIN ile ilgili bildirimler, ayrıntılı bildirim günlükleri gibi özel durumlar dışında kullanıcıya gösterilmeyebilir. |
PRIORITY_LOW |
Bildirim önceliği daha düşük. Kullanıcı arayüzü, PRIORITY_DEFAULT bildirimlerine kıyasla bildirimleri daha küçük veya farklı bir konumda göstermeyi tercih edebilir. |
PRIORITY_DEFAULT |
Varsayılan bildirim önceliği. Uygulama kendi bildirimlerine öncelik vermiyorsa tüm bildirimler için bu değeri kullanın. |
PRIORITY_HIGH |
Daha yüksek bildirim önceliği. Daha önemli bildirimler veya uyarılar için bu ayarı kullanın. Kullanıcı arayüzü, PRIORITY_DEFAULT özelliğindeki bildirimlere kıyasla bu bildirimleri daha büyük veya bildirim listelerinde farklı bir konumda göstermeyi tercih edebilir. |
PRIORITY_MAX |
En yüksek bildirim önceliği. Kullanıcının ilgilenmesini veya giriş yapmasını gerektiren, uygulamanın en önemli öğeleri için bunu kullanın. |
Görünürlük
Bir bildirimin farklı görünürlük düzeyleri.
Sıralamalar | |
---|---|
VISIBILITY_UNSPECIFIED |
Belirtilmemişse varsayılan olarak Visibility.PRIVATE olur. |
PRIVATE |
Bu bildirimi tüm kilit ekranlarında göster ancak güvenli kilit ekranlarında hassas veya gizli bilgileri gizle. |
PUBLIC |
Tüm kilit ekranlarında bu bildirimin tamamını göster. |
SECRET |
Bu bildirimin hiçbir bölümünü güvenli kilit ekranında göstermeyin. |
Işık Ayarları
Bildirim LED'ini kontrol etme ayarları.
JSON gösterimi |
---|
{
"color": {
object ( |
Alanlar | |
---|---|
color |
Zorunlu. LED'in |
light_on_duration |
Zorunlu. En fazla dokuz kesir basamağı olan ve " |
light_off_duration |
Zorunlu. En fazla dokuz kesir basamağı olan ve " |
Renk
RGBA renk alanındaki bir rengi temsil eder. Bu sunum, kompaktlık yerine, çeşitli dillerdeki renk gösterimlerine ve bu gösterimlerden dönüştürmenin basitleştirilmesi için tasarlanmıştır. Örneğin, bu temsilin alanları, Java'da java.awt.Color
oluşturucuya standart bir şekilde sağlanabilir; Ayrıca, iOS'te UIColor'ın +colorWithRed:green:blue:alpha
yöntemine de sağlanabilir; ve küçük bir çalışmayla, JavaScript'te bir CSS rgba()
dizesi olarak kolayca biçimlendirilebilir.
Bu referans sayfasında, RGB değerini yorumlamak için kullanılması gereken mutlak renk alanıyla ilgili bilgiler (ör. sRGB, Adobe RGB, DCI-P3 ve BT.2020) yer almaz. Varsayılan olarak uygulamalar sRGB renk alanını kabul etmelidir.
Renk eşitliğinin belirlenmesi gerektiğinde, aksi belirtilmediği sürece uygulamalarda iki rengin tamamının kırmızı, yeşil, mavi ve alfa değerlerinin her biri en fazla 1e-5
farklılık gösterdiği takdirde eşit kabul edilir.
Örnek (Java):
import com.google.type.Color;
// ...
public static java.awt.Color fromProto(Color protocolor) {
float alpha = protocolor.hasAlpha()
? protocolor.getAlpha().getValue()
: 1.0;
return new java.awt.Color(
protocolor.getRed(),
protocolor.getGreen(),
protocolor.getBlue(),
alpha);
}
public static Color toProto(java.awt.Color color) {
float red = (float) color.getRed();
float green = (float) color.getGreen();
float blue = (float) color.getBlue();
float denominator = 255.0;
Color.Builder resultBuilder =
Color
.newBuilder()
.setRed(red / denominator)
.setGreen(green / denominator)
.setBlue(blue / denominator);
int alpha = color.getAlpha();
if (alpha != 255) {
result.setAlpha(
FloatValue
.newBuilder()
.setValue(((float) alpha) / denominator)
.build());
}
return resultBuilder.build();
}
// ...
Örnek (iOS / Obj-C):
// ...
static UIColor* fromProto(Color* protocolor) {
float red = [protocolor red];
float green = [protocolor green];
float blue = [protocolor blue];
FloatValue* alpha_wrapper = [protocolor alpha];
float alpha = 1.0;
if (alpha_wrapper != nil) {
alpha = [alpha_wrapper value];
}
return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
}
static Color* toProto(UIColor* color) {
CGFloat red, green, blue, alpha;
if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
return nil;
}
Color* result = [[Color alloc] init];
[result setRed:red];
[result setGreen:green];
[result setBlue:blue];
if (alpha <= 0.9999) {
[result setAlpha:floatWrapperWithValue(alpha)];
}
[result autorelease];
return result;
}
// ...
Örnek (JavaScript):
// ...
var protoToCssColor = function(rgb_color) {
var redFrac = rgb_color.red || 0.0;
var greenFrac = rgb_color.green || 0.0;
var blueFrac = rgb_color.blue || 0.0;
var red = Math.floor(redFrac * 255);
var green = Math.floor(greenFrac * 255);
var blue = Math.floor(blueFrac * 255);
if (!('alpha' in rgb_color)) {
return rgbToCssColor(red, green, blue);
}
var alphaFrac = rgb_color.alpha.value || 0.0;
var rgbParams = [red, green, blue].join(',');
return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
};
var rgbToCssColor = function(red, green, blue) {
var rgbNumber = new Number((red << 16) | (green << 8) | blue);
var hexString = rgbNumber.toString(16);
var missingZeros = 6 - hexString.length;
var resultBuilder = ['#'];
for (var i = 0; i < missingZeros; i++) {
resultBuilder.push('0');
}
resultBuilder.push(hexString);
return resultBuilder.join('');
};
// ...
JSON gösterimi |
---|
{ "red": number, "green": number, "blue": number, "alpha": number } |
Alanlar | |
---|---|
red |
[0, 1] aralığındaki bir değer olarak renkteki kırmızı miktarı. |
green |
[0, 1] aralığındaki bir değer olarak renkteki yeşilin miktarı. |
blue |
[0, 1] aralığındaki bir değer olarak renkteki mavi miktarı. |
alpha |
Bu rengin piksele uygulanması gereken oranı. Yani son piksel rengi denklemle tanımlanır:
Bu, 1,0 değeri düz bir renge karşılık gelirken, 0.0 değeri tamamen şeffaf bir renge karşılık gelir. Bu yöntem, varsayılan değer ile ayarlanmayan değeri birbirinden ayırt edebilmek için basit bir kayan skaler yerine bir sarmalayıcı mesajı kullanır. Atlanırsa bu renk nesnesi düz renk olarak oluşturulur (alfa değerine açık bir şekilde 1, 0 değeri verilmiş gibi). |
Proxy
Bir bildirimin proxy'de ne zaman kullanılabileceğini kontrol etme ayarı.
Sıralamalar | |
---|---|
PROXY_UNSPECIFIED |
Belirtilmemişse varsayılan olarak Proxy.IF_PRIORITY_LOWERED olur. |
ALLOW |
Bu bildirim için proxy uygulamayı deneyin. |
DENY |
Bu bildirime proxy uygulamayın. |
IF_PRIORITY_LOWERED |
Bu bildirim için yalnızca AndroidMessagePriority değeri cihazda HIGH değerinden NORMAL değerine düşürüldüyse proxy uygulamaya çalışın. |
AndroidFcmSeçenekleri
Android için FCM SDK'sı tarafından sağlanan özelliklerle ilgili seçenekler.
JSON gösterimi |
---|
{ "analytics_label": string } |
Alanlar | |
---|---|
analytics_label |
Mesajın analiz verileriyle ilişkili etiket. |
WebpushConfig
Webpush protokolü seçenekleri.
JSON gösterimi |
---|
{
"headers": {
string: string,
...
},
"data": {
string: string,
...
},
"notification": {
object
},
"fcm_options": {
object ( |
Alanlar | |
---|---|
headers |
webpush protokolünde tanımlanan HTTP üstbilgileri. Desteklenen başlıklar için Webpush protokolü'ne bakın (ör. "TTL": "15".
|
data |
Rastgele anahtar/değer yükü. Bu parametre mevcutsa
|
notification |
JSON nesnesi olarak Web Bildirimi seçenekleri. Web Notification API'de tanımlandığı şekliyle Bildirim örneği özelliklerini destekler. Varsa "title" ve "body" alanları |
fcm_options |
Web için FCM SDK'sı tarafından sağlanan özelliklerle ilgili seçenekler. |
WebpushFcmSeçenekleri
Web için FCM SDK'sı tarafından sağlanan özelliklerle ilgili seçenekler.
JSON gösterimi |
---|
{ "link": string, "analytics_label": string } |
Alanlar | |
---|---|
link |
Kullanıcı bildirimi tıkladığında açılacak bağlantı. Tüm URL değerleri için HTTPS gereklidir. |
analytics_label |
Mesajın analiz verileriyle ilişkili etiket. |
ApnsConfig
Apple Anında Bildirim Hizmeti'ne özel seçenekler.
JSON gösterimi |
---|
{
"headers": {
string: string,
...
},
"payload": {
object
},
"fcm_options": {
object ( |
Alanlar | |
---|---|
headers |
Apple Anında Bildirim Hizmeti'nde tanımlanan HTTP istek başlıkları. Arka uç, 30 günlük
|
payload |
Hem |
fcm_options |
iOS için FCM SDK'sı tarafından sağlanan özelliklerle ilgili seçenekler. |
ApnsFcmSeçenekleri
iOS için FCM SDK'sı tarafından sağlanan özelliklerle ilgili seçenekler.
JSON gösterimi |
---|
{ "analytics_label": string, "image": string } |
Alanlar | |
---|---|
analytics_label |
Mesajın analiz verileriyle ilişkili etiket. |
image |
Bir bildirimde gösterilecek bir resmin URL'sini içerir. Bu parametre mevcutsa |
FcmSeçenekleri
FCM SDK'ları tarafından sağlanan özellikler için platformdan bağımsız seçenekler.
JSON gösterimi |
---|
{ "analytics_label": string } |
Alanlar | |
---|---|
analytics_label |
Mesajın analiz verileriyle ilişkili etiket. |
Yöntemler |
|
---|---|
|
Belirtilen hedefe (kayıt jetonu, konu veya koşul) bir mesaj gönderin. |