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 tanımlayıcısı ( |
data |
Yalnızca giriş'e dokunun. UTF-8 olarak kodlanmış olması gereken rastgele anahtar/değer yükü. Anahtar ayrılmış bir kelime olmamalıdır ("from", "message_type" veya "google" ya da "gcm" ile başlayan herhangi bir kelime). Yalnızca veri alanları içeren yükleri iOS cihazlarına gönderirken
|
notification |
Yalnızca giriş'e dokunun. Tüm platformlarda kullanılacak temel bildirim şablonu. |
android |
Yalnızca giriş'e dokunun. FCM bağlantı sunucusu üzerinden gönderilen iletiler için Android'e özel seçenekler. |
webpush |
Yalnızca giriş'e dokunun. Webpush protokolü seçenekleri. |
apns |
Yalnızca giriş'e dokunun. Apple Anında Bildirim Hizmeti'ne özel seçenekler. |
fcm_options |
Yalnızca giriş'e dokunun. Tüm platformlarda FCM SDK özellik seçenekleri için şablon. |
Birleştirme alanı target . Zorunlu. Yalnızca giriş'e dokunun. Mesaj gönderilecek hedef. target şunlardan yalnızca biri olabilir: |
|
token |
Mesajın gönderileceği kayıt jetonu. |
topic |
Mesajın gönderileceği konu adı (ör. "hava durumu"). Not: "/topics/" öneki sağlanmamalıdır. |
condition |
İleti gönderilecek koşul; ör. "konularda 'foo' && konularda 'bar'". |
Bildirim
Tüm platformlarda kullanılacak 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örüntülenecek resmin URL'sini içerir. JPEG, PNG, BMP, çeşitli platformlarda tam desteğe sahiptir. Animasyonlu GIF ve videolar yalnızca iOS'te çalışır. WebP ve HEIF, platformlar ve platform sürümleri genelinde çeşitli destek düzeylerine sahiptir. Android'de 1 MB resim boyutu sınırı vardır. Firebase Storage'da görüntü 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 |
Teslim devam ettirildiğinde yalnızca son iletinin gönderileceği şekilde daraltılabilen bir ileti grubu tanımlayıcısı. Aynı anda en fazla 4 farklı daraltma anahtarına izin verilir. |
priority |
Mesaj önceliği'ne dokunun. "Normal" ve "yüksek" değerler alabilir. 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üreyle (saniye cinsinden) saklanması gerektiği. Maksimum geçerlilik süresi 4 haftadır. Belirtilmezse varsayılan değer 4 haftadır. İletiyi hemen göndermek istiyorsanız değeri 0 olarak ayarlayın. JSON biçiminde, Süre türü nesne yerine dize olarak kodlanır. Bu dize "s" (saniyeyi belirtir) son ekiyle biter ve önüne saniye sayısı gelir. Nanosaniye, kesirli saniye olarak ifade edilir. Örneğin, 0 nanosaniyeye sahip 3 saniye JSON biçiminde "3s" olarak kodlanırken, 3 saniye ve 1 nanosaniye, JSON biçiminde "3,000000001s" olarak ifade edilmelidir. Değer, en yakın saniyeye yuvarlanır. " |
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ü. Mevcut olduğunda
|
notification |
Android cihazlara gönderilecek bildirim. |
fcm_options |
Android için FCM SDK'sı tarafından sağlanan özellik seçenekleri. |
direct_boot_ok |
Doğru değerine ayarlanırsa cihaz doğrudan başlatma modundayken mesajların uygulamaya teslim edilmesine izin verilir. Doğrudan Başlatma modunu destekleme sayfasına göz atın. |
AndroidMessagePriority (AndroidMesaj Önceliği)
Android cihazlara gönderilecek mesajın önceliği. Bu önceliğin, iletinin ne zaman teslim edileceğini kontrol eden bir FCM kavramı olduğunu unutmayın. FCM kılavuzlarını inceleyin. Ayrıca, AndroidNotification.NotificationPriority yardımıyla, hedeflenen Android cihazlarda bildirim görüntüleme önceliğini belirleyebilirsiniz.
Sıralamalar | |
---|---|
NORMAL |
Veri mesajları için varsayılan öncelik. Normal öncelikli iletiler, uykudaki bir cihazda ağ bağlantılarını açmaz ve pilin ömrünü uzatmak için bu iletilerin teslimi gecikebilir. Yeni e-posta bildirimleri veya senkronize edilecek diğer veriler gibi zaman açısından daha az hassas olan iletiler için normal teslim önceliğini seçin. |
HIGH |
Bildirim mesajları için varsayılan öncelik. FCM, yüksek öncelikli mesajları hemen teslim etmeye çalışır. Böylece FCM hizmeti, mümkün olduğunda uykudaki bir cihazı uyandırıp uygulama sunucunuza bir ağ bağlantısı açar. Örneğin anlık mesajlaşma, sohbet veya sesli arama uyarıları içeren uygulamalar genellikle bir ağ bağlantısı açmalı ve FCM'nin mesajı cihaza gecikmeden teslim ettiğinden emin olmalıdır. Mesaj, zaman açısından önemliyse ve kullanıcının hemen etkileşimde bulunmasını gerektiriyorsa yüksek öncelik ayarlayın. Ancak, iletilerinizi yüksek öncelikli olarak ayarlamanın, normal öncelikli mesajlara göre pil tüketimine daha fazla neden olacağına dikkat edin. |
Android Bildirimi
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ığı. Mevcut olduğunda |
body |
Bildirimin gövde metni. Mevcut olduğunda |
icon |
Bildirimin simgesi. Çekilebilir kaynak simgesi için bildirim simgesini myicon olarak ayarlar. İstekte bu anahtarı göndermezseniz FCM, uygulama manifestinizde belirtilen başlatıcı simgesini görüntüler. |
color |
Bildirimin, #rrggbb biçiminde belirtilen simge rengi. |
sound |
Cihaz bildirimi aldığında çalacak ses. Uygulama içinde verilen ses kaynağının "default" veya dosya adını destekler. Ses dosyaları /res/raw/ konumunda olmalıdır. |
tag |
Bildirim çekmecesindeki mevcut bildirimlerin yerini alan 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 |
Bir kullanıcının bildirimi tıklamasıyla ilişkilendirilen işlem. Belirtilirse kullanıcı bildirimi tıkladığında, eşleşen amaç filtresine sahip bir etkinlik başlatılır. |
body_loc_key |
Gövde metninin kullanıcının geçerli yerelleştirmesine göre yerelleştirilmesi 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ç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. |
title_loc_key |
Uygulamanın dize kaynaklarında, başlık metnini kullanıcının mevcut yerelleştirmesine göre yerelleştirmek için kullanılacak başlık dizesinin anahtarı. Daha fazla bilgi için Dize Kaynakları bölümüne bakın. |
title_loc_args[] |
title_loc_key içindeki biçim belirleyicilerin yerine kullanılacak ve başlık metnini kullanıcının geçerli yerelleştirmesine göre yerelleştirmek için 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 manifestinde belirtilen kanal kimliğini kullanır. |
ticker |
Erişilebilirlik hizmetlerine gönderilen "borsa kodu" metnini ayarlar. API düzeyi 21'den ( |
sticky |
Yanlış değerine ayarlanır veya ayarlanmadan bırakılırsa kullanıcı panelde tıkladığında bildirim otomatik olarak kapatılır. Doğru değerine ayarlandığında bildirim, kullanıcı tıkladığında bile gösterilmeye devam eder. |
event_time |
Bildirimdeki etkinliğin gerçekleşme zamanını ayarlayın. Paneldeki bildirimler bu zamana göre sıralanır. Bir zaman, protobuf.Timestamp kullanılarak temsil edilir. Nanosaniye çözünürlük ve en fazla dokuz kesir basamağı olan, RFC3339 UTC "Zulu" biçiminde bir zaman damgası. Örnekler: |
local_only |
Bu bildirimin yalnızca mevcut cihazla alakalı olup olmadığını ayarlayın. Bazı bildirimler, uzaktan görüntüleme için Wear OS kol saati gibi diğer cihazlara köprülenebilir. Bu ipucu, bu bildirimin köprü kullanılmamasını önermek için ayarlanabilir. Wear OS kılavuzlarına bakın |
notification_priority |
Bu bildirim için göreli önceliği ayarlayın. Öncelik, kullanıcının dikkatinin ne kadarının bu bildirim tarafından kullanılması gerektiğinin bir göstergesidir. Düşük öncelikli bildirimler, belirli durumlarda kullanıcıdan gizlenebilir ve kullanıcı, daha yüksek öncelikli bir bildirim nedeniyle 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 desenini ayarlayın. Titreşimi açmak veya kapatmak için bir protobuf.Duration dizisi aktarın. İlk değer, titreşimi açmadan önce beklenecek " |
visibility |
Bildirimin Notification.visibility değerini ayarlayın. |
notification_count |
Bu bildirimin temsil ettiği öğe sayısını ayarlar. Rozeti destekleyen başlatıcılar için rozet sayısı olarak gösterilebilir.Bildirim Rozeti konusuna bakın. Örneğin, birden fazla yeni iletiyi temsil etmek için tek bir bildirim kullanıyor, ancak buradaki sayının toplam yeni ileti sayısını temsil etmesini istiyorsanız bu özellik yararlı olabilir. Sıfır veya belirtilmemişse, rozeti destekleyen sistemler varsayılanı kullanır. Bu varsayılan ayar, yeni bir bildirim her geldiğinde uzun basma menüsünde görüntülenen bir sayıyı artırmaktır. |
light_settings |
Cihazda LED varsa 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örüntülenecek resmin URL'sini içerir. Mevcut olduğunda |
proxy |
Bir bildirimin proxy uygulanabileceği zamanı denetleme ayarı. |
Bildirim Önceliği
Bildirimin öncelik düzeyleri.
Sıralamalar | |
---|---|
PRIORITY_UNSPECIFIED |
Öncelik belirtilmezse bildirim önceliği PRIORITY_DEFAULT olarak ayarlanır. |
PRIORITY_MIN |
En düşük bildirim önceliği. Bu PRIORITY_MIN içeren bildirimler, ayrıntılı bildirim günlükleri gibi özel durumlar dışında kullanıcıya gösterilmeyebilir. |
PRIORITY_LOW |
Daha düşük bildirim önceliği. Kullanıcı arayüzü, PRIORITY_DEFAULT ile karşılaştırıldığında bildirimleri daha küçük veya listede farklı bir konumda göstermeyi seçebilir. |
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 bunu kullanın. Kullanıcı arayüzü, bu bildirimleri, PRIORITY_DEFAULT ile karşılaştırıldığında bildirim listelerinde daha büyük veya farklı bir konumda göstermeyi seçebilir. |
PRIORITY_MAX |
En yüksek bildirim önceliği. Uygulamanın kullanıcının hemen ilgilenmesini veya giriş yapmasını gerektiren 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 özel bilgileri gizle. |
PUBLIC |
Tüm kilit ekranlarında bu bildirimin tamamını göster. |
SECRET |
Bu bildirimin hiçbir kısmını güvenli kilit ekranında göstermeyin. |
LightSettings
Bildirim LED'ini kontrol etmek için ayarlar.
JSON gösterimi |
---|
{
"color": {
object ( |
Alanlar | |
---|---|
color |
Zorunlu. google.type.Color ile LED'in |
light_on_duration |
Zorunlu. " |
light_off_duration |
Zorunlu. " |
Renk
RGBA renk alanındaki bir rengi temsil eder. Bu gösterim, kompaktlık yerine çeşitli dillerdeki renk temsillerine geçiş kolaylığı sağlamak için tasarlanmıştır. Örneğin, bu temsilin alanları Java'da java.awt.Color
oluşturucuya trivilaylı olarak sağlanabilir; ayrıca iOS'teki UIColor'ın +colorWithRed:green:blue:alpha
yöntemine de parçacık olarak sağlanabilir ve sadece küçük bir çalışmayla JavaScript'te CSS rgba()
dizesine kolayca biçimlendirilebilir.
Bu referans sayfada, RGB değerini yorumlamak için kullanılması gereken mutlak renk alanı hakkında bilgi yoktur (ör. sRGB, Adobe RGB, DCI-P3 ve BT.2020). Varsayılan olarak, uygulamalar sRGB renk alanını dikkate almalıdır.
Renk eşitliğinin belirlenmesi gerektiğinde, aksi belirtilmediği sürece, iki rengin tümü kırmızı, yeşil, mavi ve alfa değerleri en fazla 1e-5
farklılık gösteriyorsa bu iki rengin eşit şekilde ele alınması gerekir.
Ö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 rengin kırmızı miktarı. |
green |
[0, 1] aralığındaki bir değer olarak renkteki yeşil miktarı. |
blue |
[0, 1] aralığındaki bir değer olarak rengin mavi miktarı. |
alpha |
Bu rengin piksele uygulanması gereken oranı. Yani, pikselin son rengi aşağıdaki denklemle tanımlanır:
Diğer bir deyişle, 1,0 değeri düz bir renge, 0,0 değeri ise tamamen şeffaf bir renge karşılık gelir. Bu, varsayılan değer ile ayarlanmamış olan değer arasında ayrım yapılabilmesi için basit bir kayan skaler yerine sarmalayıcı mesajı kullanır. Atlanırsa, bu renk nesnesi düz bir renk olarak oluşturulur (alfa değerine açıkça 1,0 değeri verilmiş gibi). |
Proxy
Bir bildirimin proxy uygulanabileceği zamanı denetleme ayarı.
Sıralamalar | |
---|---|
PROXY_UNSPECIFIED |
Belirtilmemişse varsayılan olarak Proxy.IF_PRIORITY_LOWERED olur. |
ALLOW |
Bu bildirim için proxy kullanmayı deneyin. |
DENY |
Bu bildirim için proxy kullanma. |
IF_PRIORITY_LOWERED |
Bu bildirimin proxy'sini, yalnızca AndroidMessagePriority cihazda HIGH değerinden NORMAL değerine düşürüldüyse deneyin. |
AndroidFcmSeçenekleri
Android için FCM SDK'sı tarafından sağlanan özellik seçenekleri.
JSON gösterimi |
---|
{ "analytics_label": string } |
Alanlar | |
---|---|
analytics_label |
İletinin analiz verileriyle ilişkilendirilen 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ü. Mevcut olduğunda
|
notification |
JSON nesnesi olarak Web Bildirimi seçenekleri. Web Notification API'de tanımlandığı üzere Bildirim örneği özelliklerini destekler. Mevcut olduğunda, "title" (başlık) ve "body" (gövde) alanları |
fcm_options |
Web için FCM SDK'sı tarafından sağlanan özellik seçenekleri. |
WebpushFcmOptions
Web için FCM SDK'sı tarafından sağlanan özellik seçenekleri.
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 |
İletinin analiz verileriyle ilişkilendirilen 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 Push Bildirimi Hizmeti'nde tanımlanan HTTP isteği üstbilgileri. Arka uç,
|
payload |
APNs yükü, |
fcm_options |
iOS için FCM SDK'sı tarafından sağlanan özellik seçenekleri. |
ApnsFcmSeçenekleri
iOS için FCM SDK'sı tarafından sağlanan özellik seçenekleri.
JSON gösterimi |
---|
{ "analytics_label": string, "image": string } |
Alanlar | |
---|---|
analytics_label |
İletinin analiz verileriyle ilişkilendirilen etiket. |
image |
Bir bildirimde görüntülenecek resmin URL'sini içerir. Mevcut olduğunda |
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 |
İletinin analiz verileriyle ilişkilendirilen etiket. |
Yöntemler |
|
---|---|
|
Belirtilen hedefe (kayıt jetonu, konu veya koşul) mesaj gönderin. |