Resource: Pesan
Pesan yang akan dikirim oleh Layanan Firebase Cloud Messaging.
Representasi JSON |
---|
{ "name": string, "data": { string: string, ... }, "notification": { object ( |
Kolom | |
---|---|
name |
Hanya Output. ID pesan yang dikirim, dalam format |
data |
Input saja. Payload kunci/nilai arbitrer, yang harus berenkode UTF-8. Kunci tidak boleh berupa kata yang telah digunakan ("from", "message_type", atau kata apa pun yang dimulai dengan "google." atau "seconds.notification."). Saat mengirim payload yang hanya berisi kolom data ke perangkat iOS, hanya prioritas normal ( Objek yang berisi daftar pasangan |
notification |
Input saja. Template notifikasi dasar untuk digunakan di semua platform. |
android |
Input saja. Opsi spesifik Android untuk pesan yang dikirim melalui server koneksi FCM. |
webpush |
Input saja. Opsi Protokol Webpush. |
apns |
Input saja. Opsi khusus Apple Push Notification Service. |
fcm_options |
Input saja. Template untuk opsi fitur FCM SDK yang akan digunakan di semua platform. |
Kolom union target . Wajib diisi. Input saja. Target untuk mengirim pesan. target hanya ada berupa salah satu diantara berikut: |
|
token |
Token pendaftaran yang akan dikirimi pesan. |
topic |
Nama topik yang akan dikirimi pesan, mis. "cuaca". Catatan: "/topics/" tidak boleh diberikan. |
condition |
Kondisi untuk dikirimi pesan, mis. "'foo' dalam topik && 'bar' dalam topik". |
Notifikasi
Template notifikasi dasar untuk digunakan di semua platform.
Representasi JSON |
---|
{ "title": string, "body": string, "image": string } |
Kolom | |
---|---|
title |
Judul notifikasi. |
body |
Teks isi notifikasi. |
image |
Berisi URL gambar yang akan didownload di perangkat dan ditampilkan dalam notifikasi. JPEG, PNG, BMP memiliki dukungan penuh di seluruh platform. Video dan GIF animasi hanya berfungsi di iOS. WebP dan HEIF memiliki tingkat dukungan yang berbeda di seluruh platform dan versi platform. Android memiliki batas ukuran gambar 1 MB. Penggunaan kuota dan implikasi/biaya untuk menghosting gambar di Firebase Storage: https://firebase.google.com/pricing |
AndroidConfig
Opsi spesifik Android untuk pesan yang dikirim melalui server koneksi FCM.
Representasi JSON |
---|
{ "collapse_key": string, "priority": enum ( |
Kolom | |
---|---|
collapse_key |
ID grup pesan yang dapat diciutkan, sehingga hanya pesan terakhir yang akan dikirim saat pengiriman dapat dilanjutkan. Maksimum 4 kunci penciutan berbeda yang diizinkan pada satu waktu tertentu. |
priority |
Prioritas pesan. Dapat mengambil "normal" dan "tinggi" masing-masing. Untuk mengetahui informasi lebih lanjut, lihat Menetapkan prioritas pesan. |
ttl |
Durasi (dalam detik) pesan harus disimpan dalam penyimpanan FCM jika perangkat sedang offline. Waktu aktif maksimum yang didukung adalah 4 minggu, dan nilai defaultnya adalah 4 minggu jika tidak ditetapkan. Tetapkan ke 0 jika ingin segera mengirim pesan. Dalam format JSON, jenis Durasi dienkode sebagai string, bukan objek, dengan string berakhiran di akhiran "s" (menunjukkan detik) dan didahului dengan jumlah detik, dengan nanodetik yang dinyatakan sebagai detik pecahan. Misalnya, 3 detik dengan 0 nanodetik harus dienkode dalam format JSON sebagai "3s", sedangkan 3 detik dan 1 nanodetik harus dinyatakan dalam format JSON sebagai "3.000000001s". Ttl akan dibulatkan ke bawah ke detik terdekat. Durasi dalam detik dengan maksimal sembilan digit pecahan, yang diakhiri dengan ' |
restricted_package_name |
Nama paket aplikasi tempat token pendaftaran harus cocok agar dapat menerima pesan. |
data |
Payload kunci/nilai arbitrer. Jika ada, parameter ini akan menggantikan Objek yang berisi daftar pasangan |
notification |
Notifikasi untuk dikirimkan ke perangkat Android. |
fcm_options |
Opsi untuk fitur yang disediakan oleh FCM SDK untuk Android. |
direct_boot_ok |
Jika disetel ke benar (true), pesan akan diizinkan untuk dikirimkan ke aplikasi saat perangkat berada dalam mode booting langsung. Lihat Mendukung mode Direct Boot. |
AndroidMessagePriority
Prioritas pesan untuk dikirim ke perangkat Android. Perlu diperhatikan bahwa prioritas ini adalah konsep FCM yang mengontrol kapan pesan dikirim. Lihat panduan FCM. Selain itu, Anda dapat menentukan prioritas tampilan notifikasi di perangkat Android yang ditargetkan menggunakan AndroidNotification.NotificationPriority.
Enum | |
---|---|
NORMAL |
Prioritas default untuk pesan data. Pesan berprioritas normal tidak akan membuka koneksi jaringan pada perangkat yang sedang tidur, dan pengirimannya mungkin tertunda untuk menghemat baterai. Untuk pesan yang kurang mendesak, misalnya notifikasi email baru atau data lain yang perlu disinkronkan, pilih prioritas pengiriman normal. |
HIGH |
Prioritas default untuk pesan notifikasi. FCM berusaha untuk segera mengirimkan pesan berprioritas tinggi, yang memungkinkan layanan FCM membangunkan perangkat yang sedang tidur jika memungkinkan dan membuka koneksi jaringan ke server aplikasi Anda. Aplikasi dengan pesan instan, chat, atau pemberitahuan panggilan suara, misalnya, secara umum perlu membuka koneksi jaringan dan memastikan FCM mengirimkan pesan ke perangkat tanpa penundaan. Tetapkan prioritas tinggi jika pesan bersifat mendesak dan memerlukan interaksi langsung pengguna, tetapi berhati-hatilah karena mengatur pesan ke prioritas tinggi akan lebih menghabiskan daya baterai dibandingkan dengan pesan prioritas normal. |
AndroidNotification
Notifikasi untuk dikirimkan ke perangkat Android.
Representasi JSON |
---|
{ "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 ( |
Kolom | |
---|---|
title |
Judul notifikasi. Jika ada, parameter ini akan menggantikan |
body |
Teks isi notifikasi. Jika ada, parameter ini akan menggantikan |
icon |
Ikon notifikasi. Menyetel ikon notifikasi ke myicon untuk myicon resource drawable. Jika Anda tidak mengirim kunci ini dalam permintaan, FCM akan menampilkan ikon peluncur yang ditentukan dalam manifes aplikasi. |
color |
Warna ikon notifikasi, dinyatakan dalam format #rrggbb. |
sound |
Suara yang diputar saat perangkat menerima notifikasi. Mendukung "default" atau nama file sumber daya suara yang dipaketkan dalam aplikasi. File suara harus berada di /res/raw/. |
tag |
ID yang digunakan untuk mengganti notifikasi yang ada di panel samping notifikasi. Jika tidak ditentukan, setiap permintaan akan membuat notifikasi baru. Jika ditetapkan dan notifikasi dengan tag yang sama sudah ditampilkan, notifikasi yang baru akan menggantikan notifikasi lama di panel samping notifikasi. |
click_action |
Tindakan yang terkait dengan klik pengguna pada notifikasi. Jika ditetapkan, aktivitas dengan filter intent yang cocok akan diluncurkan saat pengguna mengklik notifikasi. |
body_loc_key |
Kunci untuk string isi di resource string aplikasi yang akan digunakan untuk melokalkan teks isi ke bahasa pengguna saat ini. Lihat Resource String untuk informasi selengkapnya. |
body_loc_args[] |
Nilai string variabel yang akan digunakan sebagai pengganti penentu format dalam body_loc_key untuk melokalkan teks isi ke bahasa pengguna saat ini. Lihat Pemformatan dan Penataan Gaya untuk informasi lebih lanjut. |
title_loc_key |
Kunci ke string judul di dalam resource string aplikasi yang akan digunakan untuk melokalkan teks judul ke pelokalan pengguna saat ini. Lihat Resource String untuk informasi selengkapnya. |
title_loc_args[] |
Nilai string variabel yang akan digunakan sebagai pengganti penentu format dalam title_loc_key untuk melokalkan teks judul ke bahasa pengguna saat ini. Lihat Pemformatan dan Penataan Gaya untuk informasi lebih lanjut. |
channel_id |
ID saluran notifikasi (baru di Android O). Aplikasi harus membuat saluran dengan ID saluran ini sebelum menerima notifikasi dengan ID saluran ini. Jika Anda tidak mengirim ID saluran ini dalam permintaan, atau jika ID saluran yang disediakan belum dibuat oleh aplikasi, FCM akan menggunakan ID saluran yang ditentukan dalam manifes aplikasi. |
ticker |
Menetapkan "ticker" Teks, yang dikirim ke layanan aksesibilitas. Sebelum API level 21 ( |
sticky |
Jika kebijakan disetel ke salah (false) atau tidak disetel, notifikasi akan otomatis ditutup saat pengguna mengkliknya di panel. Jika disetel ke benar (true), notifikasi akan tetap ada bahkan saat pengguna mengkliknya. |
event_time |
Tetapkan waktu terjadinya peristiwa dalam notifikasi. Notifikasi di panel diurutkan menurut waktu ini. Titik waktu tertentu direpresentasikan menggunakan protobuf.Timestamp. Stempel waktu dalam RFC3339 UTC "Zulu" , dengan resolusi nanodetik dan hingga sembilan digit pecahan. Contoh: |
local_only |
Atur apakah notifikasi ini hanya relevan untuk perangkat saat ini atau tidak. Beberapa notifikasi dapat dihubungkan ke perangkat lain untuk tampilan jarak jauh, seperti smartwatch Wear OS. Petunjuk ini dapat disetel agar notifikasi ini tidak dihubungkan. Lihat panduan Wear OS |
notification_priority |
Tetapkan prioritas relatif untuk notifikasi ini. Prioritas adalah indikasi seberapa banyak perhatian pengguna harus digunakan oleh notifikasi ini. Notifikasi prioritas rendah mungkin disembunyikan dari pengguna dalam situasi tertentu, sementara pengguna mungkin terganggu untuk notifikasi prioritas lebih tinggi. Efek dari penetapan prioritas yang sama mungkin sedikit berbeda di berbagai platform. Perlu diperhatikan bahwa prioritas ini berbeda dengan |
default_sound |
Jika disetel ke benar (true), gunakan suara default framework Android untuk notifikasi. Nilai default ditentukan dalam config.xml. |
default_vibrate_timings |
Jika disetel ke benar (true), gunakan pola getar default framework Android untuk notifikasi. Nilai default ditentukan dalam config.xml. Jika |
default_light_settings |
Jika disetel ke benar (true), gunakan setelan lampu LED default framework Android untuk notifikasi. Nilai default ditentukan dalam config.xml. Jika |
vibrate_timings[] |
Setel pola getaran yang akan digunakan. Teruskan array protobuf.Duration untuk mengaktifkan atau menonaktifkan vibrator. Nilai pertama menunjukkan Durasi dalam detik dengan maksimal sembilan digit pecahan, yang diakhiri dengan ' |
visibility |
Tetapkan Notification.visibility notifikasi. |
notification_count |
Menetapkan jumlah item yang diwakili oleh notifikasi ini. Dapat ditampilkan sebagai jumlah badge untuk peluncur yang mendukung badge.Lihat Badge Notifikasi. Misalnya, hal ini mungkin berguna jika Anda hanya menggunakan satu notifikasi untuk merepresentasikan beberapa pesan baru, tetapi Anda ingin penghitungan di sini mewakili jumlah total pesan baru. Jika nol atau tidak ditentukan, sistem yang mendukung badge akan menggunakan setelan default, yaitu menaikkan angka yang ditampilkan pada menu tekan lama setiap kali notifikasi baru masuk. |
light_settings |
Setelan untuk mengontrol warna dan tingkat kedipan LED notifikasi jika LED tersedia di perangkat. Total waktu kedipan dikontrol oleh OS. |
image |
Berisi URL gambar yang akan ditampilkan dalam notifikasi. Jika ada, parameter ini akan menggantikan |
bypass_proxy_notification |
Jika disetel, notifikasi tampilan yang dikirimkan ke perangkat akan ditangani oleh aplikasi, bukan proxy. |
proxy |
Setelan untuk mengontrol waktu notifikasi dapat di-proxy-kan. |
PrioritasNotifikasi
Tingkat prioritas notifikasi.
Enum | |
---|---|
PRIORITY_UNSPECIFIED |
Jika prioritas tidak ditentukan, prioritas notifikasi akan disetel ke PRIORITY_DEFAULT . |
PRIORITY_MIN |
Prioritas notifikasi terendah. Notifikasi dengan PRIORITY_MIN ini mungkin tidak ditampilkan kepada pengguna kecuali dalam keadaan khusus, seperti log notifikasi mendetail. |
PRIORITY_LOW |
Prioritas notifikasi yang lebih rendah. UI dapat memilih untuk menampilkan notifikasi yang lebih kecil, atau pada posisi yang berbeda dalam daftar, dibandingkan dengan notifikasi dengan PRIORITY_DEFAULT . |
PRIORITY_DEFAULT |
Prioritas notifikasi default. Jika aplikasi tidak memprioritaskan notifikasinya sendiri, gunakan nilai ini untuk semua notifikasi. |
PRIORITY_HIGH |
Prioritas notifikasi yang lebih tinggi. Gunakan ini untuk notifikasi atau pemberitahuan penting lainnya. UI dapat memilih untuk menampilkan notifikasi ini dalam ukuran lebih besar, atau pada posisi yang berbeda dalam daftar notifikasi, dibandingkan dengan notifikasi dengan PRIORITY_DEFAULT . |
PRIORITY_MAX |
Prioritas notifikasi tertinggi. Gunakan ini untuk item aplikasi yang paling penting yang memerlukan perhatian atau input cepat dari pengguna. |
Visibilitas
Tingkat visibilitas notifikasi yang berbeda.
Enum | |
---|---|
VISIBILITY_UNSPECIFIED |
Jika tidak ditentukan, defaultnya adalah Visibility.PRIVATE . |
PRIVATE |
Menampilkan notifikasi ini di semua layar kunci, tetapi menyembunyikan informasi sensitif atau pribadi di layar kunci yang aman. |
PUBLIC |
Tampilkan notifikasi ini secara keseluruhan di semua layar kunci. |
SECRET |
Jangan buka bagian apa pun dari notifikasi ini di layar kunci yang aman. |
Pengaturan Cahaya
Setelan untuk mengontrol LED notifikasi.
Representasi JSON |
---|
{
"color": {
object ( |
Kolom | |
---|---|
color |
Wajib diisi. Setel |
light_on_duration |
Wajib diisi. Bersama dengan Durasi dalam detik dengan maksimal sembilan digit pecahan, yang diakhiri dengan ' |
light_off_duration |
Wajib diisi. Bersama dengan Durasi dalam detik dengan maksimal sembilan digit pecahan, yang diakhiri dengan ' |
Warna
Mewakili warna dalam ruang warna RGBA. Representasi ini dirancang untuk kemudahan konversi ke dan dari representasi warna dalam berbagai bahasa daripada kerapatan. Misalnya, kolom representasi ini dapat dengan mudah diberikan ke konstruktor java.awt.Color
di Java; ini juga dapat dengan mudah diberikan ke metode +colorWithRed:green:blue:alpha
UIColor di iOS; dan, hanya dengan sedikit upaya, dapat dengan mudah diformat menjadi string rgba()
CSS di JavaScript.
Halaman referensi ini tidak memiliki informasi tentang ruang warna absolut yang harus digunakan untuk menafsirkan nilai RGB—misalnya, sRGB, Adobe RGB, DCI-P3, dan BT.2020. Secara default, aplikasi harus menggunakan ruang warna sRGB.
Saat kesetaraan warna perlu ditentukan, implementasi, kecuali jika didokumentasikan sebaliknya, memperlakukan dua warna sama jika semua nilai merah, hijau, biru, dan alfa masing-masing berbeda paling banyak sebesar 1e-5
.
Contoh (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();
}
// ...
Contoh (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;
}
// ...
Contoh (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('');
};
// ...
Representasi JSON |
---|
{ "red": number, "green": number, "blue": number, "alpha": number } |
Kolom | |
---|---|
red |
Jumlah merah dalam warna sebagai nilai dalam interval [0, 1]. |
green |
Jumlah hijau dalam warna sebagai nilai dalam interval [0, 1]. |
blue |
Jumlah biru dalam warna sebagai nilai dalam interval [0, 1]. |
alpha |
Fraksi warna ini yang harus diterapkan ke piksel. Yaitu, warna piksel akhir ditentukan oleh persamaan:
Ini berarti bahwa nilai 1,0 berarti warna solid, sedangkan nilai 0,0 berarti warna yang sepenuhnya transparan. Kode ini menggunakan pesan wrapper, bukan skalar float sederhana sehingga memungkinkan untuk membedakan antara nilai default dan nilai yang tidak disetel. Jika dihilangkan, objek warna ini dirender sebagai warna solid (seolah-olah nilai alfa secara eksplisit diberi nilai 1,0). |
Proxy
Setelan untuk mengontrol waktu notifikasi dapat di-proxy-kan.
Enum | |
---|---|
PROXY_UNSPECIFIED |
Jika tidak ditentukan, defaultnya adalah Proxy.IF_PRIORITY_LOWERED . |
ALLOW |
Coba buat proxy notifikasi ini. |
DENY |
Jangan gunakan proxy untuk notifikasi ini. |
IF_PRIORITY_LOWERED |
Hanya coba lakukan proxy notifikasi ini jika AndroidMessagePriority diturunkan dari HIGH menjadi NORMAL di perangkat. |
OpsiAndroidFcm
Opsi untuk fitur yang disediakan oleh FCM SDK untuk Android.
Representasi JSON |
---|
{ "analytics_label": string } |
Kolom | |
---|---|
analytics_label |
Label yang terkait dengan data analisis pesan. |
WebpushConfig
Opsi Protokol Webpush.
Representasi JSON |
---|
{
"headers": {
string: string,
...
},
"data": {
string: string,
...
},
"notification": {
object
},
"fcm_options": {
object ( |
Kolom | |
---|---|
headers |
Header HTTP yang ditentukan dalam protokol webpush. Lihat protokol Webpush untuk mengetahui header yang didukung, mis. "TTL": "15". Objek yang berisi daftar pasangan |
data |
Payload kunci/nilai arbitrer. Jika ada, parameter ini akan menggantikan Objek yang berisi daftar pasangan |
notification |
Opsi Notifikasi Web sebagai objek JSON. Mendukung properti instance Notifikasi seperti yang ditentukan dalam Web Notification API. Jika ada, "title" dan "body" kolom akan menggantikan |
fcm_options |
Opsi untuk fitur yang disediakan oleh FCM SDK untuk Web. |
WebpushFcmOptions
Opsi untuk fitur yang disediakan oleh FCM SDK untuk Web.
Representasi JSON |
---|
{ "link": string, "analytics_label": string } |
Kolom | |
---|---|
link |
Link yang akan dibuka saat pengguna mengklik notifikasi. Untuk semua nilai URL, diperlukan HTTPS. |
analytics_label |
Label yang terkait dengan data analisis pesan. |
ApnsConfig
Opsi khusus Apple Push Notification Service.
Representasi JSON |
---|
{
"headers": {
string: string,
...
},
"payload": {
object
},
"fcm_options": {
object ( |
Kolom | |
---|---|
headers |
Header permintaan HTTP yang ditentukan di Apple Push Notification Service. Lihat header permintaan APNs untuk mengetahui header yang didukung seperti Backend menetapkan nilai default untuk Objek yang berisi daftar pasangan |
payload |
Payload APN sebagai objek JSON, termasuk kamus |
fcm_options |
Opsi untuk fitur yang disediakan oleh FCM SDK untuk iOS. |
ApnsFcmOptions
Opsi untuk fitur yang disediakan oleh FCM SDK untuk iOS.
Representasi JSON |
---|
{ "analytics_label": string, "image": string } |
Kolom | |
---|---|
analytics_label |
Label yang terkait dengan data analisis pesan. |
image |
Berisi URL gambar yang akan ditampilkan dalam notifikasi. Jika ada, parameter ini akan menggantikan |
OpsiFcm
Opsi independen platform untuk fitur yang disediakan oleh FCM SDK.
Representasi JSON |
---|
{ "analytics_label": string } |
Kolom | |
---|---|
analytics_label |
Label yang terkait dengan data analisis pesan. |
Metode |
|
---|---|
|
Mengirim pesan ke target tertentu (token, topik, atau kondisi pendaftaran). |