Kaynak: Mesaj
Firebase Bulut Mesajlaşma Hizmeti tarafından gönderilecek mesaj.
JSON gösterimi |
---|
{ "name": string, "data": { string: string, ... }, "notification": { object ( |
Alanlar | |
---|---|
name | Yalnızca Çıkış. Gönderilen iletinin, |
data | Yalnızca giriş yapın. UTF-8 olarak kodlanması gereken rastgele anahtar/değer yükü. Anahtar, ayrılmış bir kelime ("from", "message_type" veya "google" veya "gcm" ile başlayan herhangi bir kelime) olmamalıdır. Yalnızca veri alanlarını içeren yükleri iOS aygıtlarına gönderirken |
notification | Yalnızca giriş yapın. Tüm platformlarda kullanılacak temel bildirim şablonu. |
android | Yalnızca giriş yapın. FCM bağlantı sunucusu aracılığıyla gönderilen mesajlar için Android'e özgü seçenekler. |
webpush | Yalnızca giriş yapın. Webpush protokolü seçenekleri. |
apns | Yalnızca giriş yapın. Apple Anında Bildirim Hizmeti'ne özgü seçenekler. |
fcm_options | Yalnızca giriş yapın. Tüm platformlarda kullanılacak FCM SDK özellik seçenekleri şablonu. |
Birlik alanı target . Gerekli. Yalnızca giriş yapın. Mesaj gönderilecek hedef. target aşağıdakilerden yalnızca biri olabilir: | |
token | Mesaj göndermek için kayıt jetonu. |
topic | Mesajın gönderileceği konunun adı, örneğin "hava durumu". Not: "/topics/" öneki verilmemelidir. |
condition | Mesaj gönderme koşulu, örneğin "konularda 'foo' && konularda 'bar'". |
Bildiri
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 görselin URL'sini içerir. JPEG, PNG, BMP platformlar arasında tam desteğe sahiptir. Animasyonlu GIF ve video yalnızca iOS'ta çalışır. WebP ve HEIF, platformlar ve platform sürümleri arasında değişen düzeylerde desteğe sahiptir. Android'in 1 MB resim boyutu sınırı vardır. Firebase Storage'da resim barındırmaya ilişkin kota kullanımı ve sonuçları/maliyetleri: https://firebase.google.com/pricing |
AndroidYapılandırması
FCM bağlantı sunucusu aracılığıyla gönderilen mesajlar için Android'e özgü seçenekler.
JSON gösterimi |
---|
{ "collapse_key": string, "priority": enum ( |
Alanlar | |
---|---|
collapse_key | Dağıtım devam ettirildiğinde yalnızca son mesajın gönderilmesini sağlayacak şekilde daraltılabilen bir mesaj grubunun tanımlayıcısı. Herhangi bir zamanda en fazla 4 farklı daraltma anahtarına izin verilir. |
priority | Mesaj önceliği. "Normal" ve "yüksek" değerleri alabilir. Daha fazla bilgi için bkz. Bir mesajın önceliğini ayarlama . |
ttl | Cihaz çevrimdışıysa mesajın FCM deposunda ne kadar süre (saniye olarak) saklanması gerektiği. Desteklenene kadar maksimum süre 4 haftadır ve ayarlanmadığı takdirde varsayılan değer 4 haftadır. Mesajı hemen göndermek istiyorsanız 0'a ayarlayın. JSON biçiminde, Süre türü bir nesne yerine bir dize olarak kodlanır; burada dize "s" son ekiyle biter (saniyeleri belirtir) ve önünde saniye sayısı gelir; nanosaniyeler kesirli saniye olarak ifade edilir. Örneğin 0 nanosaniyelik 3 saniye JSON formatında "3s" olarak kodlanmalı, 3 saniye ve 1 nanosaniye ise JSON formatında "3.000000001s" olarak kodlanmalıdır. Ttl en yakın saniyeye yuvarlanacaktır. ' |
restricted_package_name | Mesajın alınabilmesi için kayıt jetonunun eşleşmesi gereken uygulamanın paket adı. |
data | Rastgele anahtar/değer yükü. Varsa, |
notification | Android cihazlara gönderilecek bildirim. |
fcm_options | Android için FCM SDK tarafından sağlanan özelliklere ilişkin seçenekler. |
direct_boot_ok | True olarak ayarlanırsa, cihaz doğrudan önyükleme modundayken mesajların uygulamaya iletilmesine izin verilecektir. Bkz. Doğrudan Önyükleme modunu destekleme . |
AndroidMesajÖncelik
Android cihazlara gönderilecek mesajın önceliği. Bu önceliğin, mesajın ne zaman teslim edildiğini kontrol eden bir FCM konsepti olduğunu unutmayın. FCM kılavuzlarına bakın. Ayrıca, AndroidNotification.NotificationPriority kullanarak hedeflenen Android cihazlarda bildirim görüntüleme önceliğini belirleyebilirsiniz.
Numaralandırmalar | |
---|---|
NORMAL | Veri mesajları için varsayılan öncelik. Normal öncelikli mesajlar, uyuyan cihazdaki ağ bağlantılarını açmaz ve pil tasarrufu sağlamak için bunların iletilmesi gecikebilir. Yeni e-posta bildirimleri veya senkronize edilecek diğer veriler gibi zamana duyarlı olmayan mesajlar için normal dağıtım önceliğini seçin. |
HIGH | Bildirim mesajları için varsayılan öncelik. FCM, yüksek öncelikli mesajları anında iletmeye çalışarak FCM hizmetinin mümkün olduğunda uyuyan cihazı uyandırmasına ve uygulama sunucunuza bir ağ bağlantısı açmasına olanak tanır. Ö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ı gecikmeden cihaza iletmesini sağlaması gerekir. Mesaj zaman açısından kritikse ve kullanıcının anında etkileşimini gerektiriyorsa yüksek önceliği ayarlayın; ancak mesajlarınızı yüksek önceliğe ayarlamanın, normal öncelikli mesajlarla karşılaştırıldığında pil tüketimine daha fazla katkıda bulunacağını unutmayın. |
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ığı. Varsa, |
body | Bildirimin gövde metni. Varsa, |
icon | Bildirimin simgesi. Çekilebilir kaynak myicon için bildirim simgesini myicon olarak ayarlar. Bu anahtarı istekte göndermezseniz FCM, uygulama bildiriminizde belirtilen başlatıcı simgesini görüntüler. |
color | Bildirimin #rrggbb biçiminde ifade edilen simge rengi. |
sound | Cihaz bildirimi aldığında çalınacak ses. "Varsayılan"ı veya uygulamada paketlenmiş bir ses kaynağının dosya adını destekler. Ses dosyaları /res/raw/ dizininde bulunmalıdır. |
tag | Bildirim çekmecesindeki mevcut bildirimleri değiştirmek için kullanılan tanımlayıcı. Belirtilmediği takdirde 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 bildirime tıklamasıyla ilişkili eylem. Belirtilirse, kullanıcı bildirimi tıkladığında eşleşen amaç filtresine sahip bir etkinlik başlatılır. |
body_loc_key | Gövde metnini kullanıcının geçerli 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ına 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 belirticileri yerine kullanılacak değişken dize değerleri. Daha fazla bilgi için Biçimlendirme ve Şekillendirme konusuna bakın. |
title_loc_key | Başlık metnini kullanıcının geçerli 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ına bakın. |
title_loc_args[] | Başlık metnini kullanıcının geçerli yerelleştirmesine göre yerelleştirmek için kullanılacak title_loc_key içindeki biçim belirticileri yerine kullanılacak değişken dize değerleri. Daha fazla bilgi için Biçimlendirme ve Şekillendirme konusuna 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ğine sahip 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 "ticker" metnini ayarlar. API düzeyi 21'den ( |
sticky | Yanlış olarak ayarlandığında veya ayarlanmadan kaldırıldığında, kullanıcı panelde tıkladığında bildirim otomatik olarak kapatılır. True olarak ayarlandığında, kullanıcı tıklasa bile bildirim devam eder. |
event_time | Bildirimdeki olayın gerçekleştiği zamanı ayarlayın. Paneldeki bildirimler bu zamana göre sıralanır. Zamandaki bir nokta protobuf.Timestamp kullanılarak temsil edilir. RFC3339 UTC "Zulu" biçiminde, nanosaniye çözünürlüğe ve en fazla dokuz kesirli basamağa sahip bir zaman damgası. Örnekler: |
local_only | Bu bildirimin yalnızca geçerli cihazla ilgili olup olmayacağını ayarlayın. Bazı bildirimler, Wear OS saati gibi uzaktan görüntülenmek üzere diğer cihazlara köprülenebilir. Bu ipucu, bu bildirimin köprülenmemesini önerecek şekilde ayarlanabilir. Wear OS kılavuzlarına bakın |
notification_priority | Bu bildirim için göreceli önceliği ayarlayın. Öncelik, kullanıcının dikkatinin bu bildirim tarafından ne kadar tüketilmesi gerektiğinin bir göstergesidir. Düşük öncelikli bildirimler belirli durumlarda kullanıcıdan gizlenebilirken, daha yüksek öncelikli bir bildirim için kullanıcının kesintiye uğraması söz konusu olabilir. Aynı öncelikleri belirlemenin etkisi farklı platformlarda biraz farklılık gösterebilir. Bu önceliğin |
default_sound | Doğru olarak 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 olarak ayarlanırsa bildirim için Android çerçevesinin varsayılan titreşim modelini kullanın. Varsayılan değerler config.xml dosyasında belirtilmiştir. |
default_light_settings | Doğru olarak 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 dizi protobuf.Duration girin. İlk değer vibratörü açmadan önce beklenecek ' |
visibility | Bildirimin Notification.visibility değerini ayarlayın. |
notification_count | Bu bildirimin temsil ettiği öğe sayısını ayarlar. Rozetlemeyi destekleyen başlatıcılar için rozet sayısı olarak görüntülenebilir. Bkz. Bildirim Rozeti . Örneğin, birden fazla yeni iletiyi temsil etmek 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, kimlik doğrulamayı destekleyen sistemler varsayılanı kullanır; bu, her yeni bildirim geldiğinde uzun basılan menüde görüntülenen sayının artırılmasıdır. |
light_settings | Cihazda LED varsa, bildirimin LED'inin yanıp sönme hızını ve rengini kontrol etmeye yönelik 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. Varsa, |
Bildirim Önceliği
Bir bildirimin öncelik düzeyleri.
Numaralandırmalar | |
---|---|
PRIORITY_UNSPECIFIED | Öncelik belirtilmezse bildirim önceliği PRIORITY_DEFAULT olarak ayarlanır. |
PRIORITY_MIN | En düşük bildirim önceliği. Bu PRIORITY_MIN değerine sahip 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 bildirimlerine kıyasla 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ü, PRIORITY_DEFAULT bildirimlerine kıyasla bu bildirimleri daha büyük veya bildirim listelerinde farklı bir konumda göstermeyi seçebilir. |
PRIORITY_MAX | En yüksek bildirim önceliği. Bunu, kullanıcının hemen ilgilenmesini veya giriş yapmasını gerektiren uygulamanın en önemli öğeleri için kullanın. |
Görünürlük
Bir bildirimin farklı görünürlük düzeyleri.
Numaralandırmalar | |
---|---|
VISIBILITY_UNSPECIFIED | Belirtilmemişse varsayılan olarak Visibility.PRIVATE olarak ayarlayın. |
PRIVATE | Bu bildirimi tüm kilit ekranlarında gösterin ancak hassas veya özel bilgileri güvenli kilit ekranlarında gizleyin. |
PUBLIC | Bu bildirimin tamamını tüm kilit ekranlarında gösterin. |
SECRET | Bu bildirimin herhangi bir bölümünü güvenli bir kilit ekranında göstermeyin. |
IşıkAyarları
Bildirim LED'ini kontrol etmeye yönelik ayarlar.
JSON gösterimi |
---|
{
"color": {
object ( |
Alanlar | |
---|---|
color | Gerekli. LED'in |
light_on_duration | Gerekli. ' |
light_off_duration | Gerekli. ' |
Renk
RGBA renk uzayındaki bir rengi temsil eder. Bu gösterim, kompaktlık yerine çeşitli dillerdeki renk gösterimlerine/renk gösterimlerinden dönüşümün basitliği için tasarlanmıştır. Örneğin, bu gösterimin alanları Java'da java.awt.Color
yapıcısına basit bir şekilde sağlanabilir; aynı zamanda iOS'ta UIColor'ın +colorWithRed:green:blue:alpha
yöntemine de önemsiz bir şekilde sağlanabilir; ve biraz çalışmayla JavaScript'te kolayca bir CSS rgba()
dizesine biçimlendirilebilir.
Bu referans sayfası, RGB değerini yorumlamak için kullanılması gereken mutlak renk alanı (örn. sRGB, Adobe RGB, DCI-P3, BT.2020 vb.) hakkında bilgi taşımaz. Varsayılan olarak uygulamalar sRGB renk alanını varsaymalıdır.
Renk eşitliğine karar verilmesi gerektiğinde uygulamalar, aksi belgelenmedikçe, kırmızı, yeşil, mavi ve alfa değerlerinin her birinin en fazla 1e-5 farklı olması durumunda iki rengi eşit olarak ele alır.
Ö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ığında bir değer olarak renkteki kırmızı miktarı. |
green | [0, 1] aralığında bir değer olarak renkteki yeşil miktarı. |
blue | [0, 1] aralığında bir değer olarak renkteki mavi miktarı. |
alpha | Bu rengin piksele uygulanması gereken kısmı. Yani son piksel rengi aşağıdaki denklemle tanımlanır: Bu, 1,0 değerinin düz bir renge, 0,0 değerinin ise tamamen şeffaf bir renge karşılık geldiği anlamına gelir. Bu, basit bir kayan skaler yerine bir sarmalayıcı mesaj kullanır, böylece varsayılan değer ile ayarlanmamış değer arasında ayrım yapmak mümkün olur. Atlanırsa, bu renkli nesne düz renk olarak oluşturulur (sanki alfa değerine açıkça 1,0 değeri verilmiş gibi). |
AndroidFcmSeçenekler
Android için FCM SDK tarafından sağlanan özelliklere ilişkin seçenekler.
JSON gösterimi |
---|
{ "analytics_label": string } |
Alanlar | |
---|---|
analytics_label | Mesajın analiz verileriyle ilişkili etiket. |
WebpushYapılandırması
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, örneğin "TTL": "15". |
data | Rastgele anahtar/değer yükü. Varsa, |
notification | JSON nesnesi olarak Web Bildirimi seçenekleri. Web Bildirim API'sinde tanımlandığı şekilde Bildirim örneği özelliklerini destekler. Varsa, "title" ve "body" alanları |
fcm_options | Web için FCM SDK tarafından sağlanan özelliklere ilişkin seçenekler. |
WebpushFcmSeçenekler
Web için FCM SDK tarafından sağlanan özelliklere ilişkin 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. |
ApnsYapılandırması
Apple Anında Bildirim Hizmeti'ne özgü seçenekler.
JSON gösterimi |
---|
{
"headers": {
string: string,
...
},
"payload": {
object
},
"fcm_options": {
object ( |
Alanlar | |
---|---|
headers | Apple Anında Bildirim Hizmetinde tanımlanan HTTP istek üstbilgileri. Arka uç, |
payload | Hem |
fcm_options | iOS için FCM SDK tarafından sağlanan özelliklere ilişkin seçenekler. |
ApnsFcmSeçenekler
iOS için FCM SDK tarafından sağlanan özelliklere ilişkin seçenekler.
JSON gösterimi |
---|
{ "analytics_label": string, "image": string } |
Alanlar | |
---|---|
analytics_label | Mesajın analiz verileriyle ilişkili etiket. |
image | Bir bildirimde görüntülenecek resmin URL'sini içerir. Varsa, |
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 belirteci, konu veya koşul) bir mesaj gönderin. |