Zasób: Wiadomość
Wiadomość do wysłania przez usługę przesyłania wiadomości w chmurze Firebase.
Reprezentacja JSON |
---|
{ "name": string, "data": { string: string, ... }, "notification": { object ( |
Pola | |
---|---|
name | Tylko wyjście. Identyfikator wysłanej wiadomości w formacie |
data | Tylko wejście. Dowolny ładunek klucza/wartości, który musi być zakodowany w formacie UTF-8. Klucz nie powinien być słowem zastrzeżonym („from”, „typ_wiadomości” ani żadnym słowem zaczynającym się od „google” lub „gcm”). Podczas wysyłania ładunków zawierających tylko pola danych do urządzeń z systemem iOS, w Obiekt zawierający listę par |
notification | Tylko wejście. Podstawowy szablon powiadomienia do użycia na wszystkich platformach. |
android | Tylko wejście. Opcje specyficzne dla Androida dla wiadomości wysyłanych przez serwer połączeń FCM . |
webpush | Tylko wejście. Opcje protokołu Webpush . |
apns | Tylko wejście. Opcje specyficzne dla usługi powiadomień push Apple . |
fcm_options | Tylko wejście. Szablon opcji funkcji pakietu FCM SDK do użycia na wszystkich platformach. |
target terenowy Unii. Wymagany. Tylko wejście. Cel, do którego chcesz wysłać wiadomość. target może być tylko jednym z następujących: | |
token | Token rejestracyjny, do którego można wysłać wiadomość. |
topic | Nazwa tematu, do którego chcesz wysłać wiadomość, np. „pogoda”. Uwaga: nie należy podawać przedrostka „/topics/”. |
condition | Warunek, do którego chcesz wysłać wiadomość, np. „'foo' w tematach && 'bar' w tematach”. |
Powiadomienie
Podstawowy szablon powiadomienia do użycia na wszystkich platformach.
Reprezentacja JSON |
---|
{ "title": string, "body": string, "image": string } |
Pola | |
---|---|
title | Tytuł powiadomienia. |
body | Treść powiadomienia. |
image | Zawiera adres URL obrazu, który zostanie pobrany na urządzenie i wyświetlony w powiadomieniu. JPEG, PNG, BMP mają pełną obsługę na różnych platformach. Animowane GIF i wideo działają tylko na iOS. WebP i HEIF mają różne poziomy wsparcia dla różnych platform i wersji platform. Android ma limit rozmiaru obrazu 1MB. Wykorzystanie przydziału i implikacje/koszty hostingu obrazu w Firebase Storage: https://firebase.google.com/pricing |
Konfiguracja Androida
Opcje specyficzne dla Androida dla wiadomości wysyłanych przez serwer połączeń FCM .
Reprezentacja JSON |
---|
{ "collapse_key": string, "priority": enum ( |
Pola | |
---|---|
collapse_key | Identyfikator grupy wiadomości, którą można zwinąć, tak aby po wznowieniu dostarczania wysłana została tylko ostatnia wiadomość. W danym momencie dozwolone są maksymalnie 4 różne klawisze zwijania. |
priority | Priorytet wiadomości. Może przyjmować wartości „normalne” i „wysokie”. Aby uzyskać więcej informacji, zobacz Ustawianie priorytetu wiadomości . |
ttl | Jak długo (w sekundach) wiadomość powinna być przechowywana w pamięci FCM, jeśli urządzenie jest w trybie offline. Maksymalny obsługiwany czas życia wynosi 4 tygodnie, a wartość domyślna to 4 tygodnie, jeśli nie została ustawiona. Ustaw go na 0, jeśli chcesz natychmiast wysłać wiadomość. W formacie JSON typ Duration jest kodowany jako ciąg znaków, a nie jako obiekt, gdzie ciąg znaków kończy się przyrostkiem „s” (wskazującym sekundy) i jest poprzedzony liczbą sekund, przy czym nanosekundy są wyrażane jako ułamki sekund. Na przykład 3 sekundy i 0 nanosekund powinny być zakodowane w formacie JSON jako „3s”, natomiast 3 sekundy i 1 nanosekunda powinny być wyrażone w formacie JSON jako „3.000000001s”. Wartość ttl zostanie zaokrąglona w dół do najbliższej sekundy. Czas trwania w sekundach, zawierający maksymalnie dziewięć cyfr ułamkowych, kończący się na „ |
restricted_package_name | Nazwa pakietu aplikacji, do którego musi pasować token rejestracji, aby otrzymać wiadomość. |
data | Dowolny ładunek klucza/wartości. Jeśli jest obecny, zastąpi Obiekt zawierający listę par |
notification | Powiadomienie do wysłania na urządzenia z systemem Android. |
fcm_options | Opcje funkcji udostępnianych przez pakiet FCM SDK dla systemu Android. |
direct_boot_ok | Jeśli ustawione na true, wiadomości będą mogły być dostarczane do aplikacji, gdy urządzenie będzie w trybie bezpośredniego rozruchu. Zobacz Obsługa trybu bezpośredniego rozruchu . |
Priorytet wiadomości Androida
Priorytet wiadomości wysyłanej na urządzenia z systemem Android. Należy pamiętać, że ten priorytet jest koncepcją FCM, która kontroluje, kiedy wiadomość jest dostarczana. Zobacz przewodniki FCM . Dodatkowo możesz określić priorytet wyświetlania powiadomień na docelowych urządzeniach z Androidem za pomocą AndroidNotification.NotificationPriority .
Wyliczenia | |
---|---|
NORMAL | Domyślny priorytet dla wiadomości danych. Wiadomości o normalnym priorytecie nie otwierają połączeń sieciowych na urządzeniu uśpionym, a ich dostarczenie może zostać opóźnione w celu oszczędzania baterii. W przypadku wiadomości mniej wrażliwych na czas, takich jak powiadomienia o nowej wiadomości e-mail lub inne dane do synchronizacji, wybierz normalny priorytet dostarczania. |
HIGH | Domyślny priorytet powiadomień. FCM próbuje natychmiast dostarczyć wiadomości o wysokim priorytecie, umożliwiając usłudze FCM wybudzenie uśpionego urządzenia, jeśli to możliwe, i otwarcie połączenia sieciowego z serwerem aplikacji. Na przykład aplikacje obsługujące komunikatory internetowe, czaty lub powiadomienia dotyczące połączeń głosowych zazwyczaj muszą otworzyć połączenie sieciowe i upewnić się, że FCM bezzwłocznie dostarczy wiadomość do urządzenia. Ustaw wysoki priorytet, jeśli wiadomość ma krytyczne znaczenie czasowe i wymaga natychmiastowej interakcji użytkownika, ale pamiętaj, że ustawienie wysokiego priorytetu wiadomości powoduje większe zużycie baterii w porównaniu z wiadomościami o normalnym priorytecie. |
Powiadomienie na Androida
Powiadomienie do wysłania na urządzenia z systemem Android.
Reprezentacja 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 ( |
Pola | |
---|---|
title | Tytuł powiadomienia. Jeśli jest obecny, zastąpi |
body | Treść powiadomienia. Jeśli jest obecny, zastąpi |
icon | Ikona powiadomienia. Ustawia ikonę powiadomienia na myicon dla myicon zasobu do rysowania. Jeśli nie wyślesz tego klucza w żądaniu, FCM wyświetli ikonę programu uruchamiającego określoną w manifeście aplikacji. |
color | Kolor ikony powiadomienia wyrażony w formacie #rrggbb. |
sound | Dźwięk odtwarzany, gdy urządzenie odbierze powiadomienie. Obsługuje „domyślne” lub nazwę pliku zasobu dźwiękowego dołączonego do aplikacji. Pliki dźwiękowe muszą znajdować się w /res/raw/. |
tag | Identyfikator używany do zastąpienia istniejących powiadomień w szufladzie powiadomień. Jeśli nie określono, każde żądanie tworzy nowe powiadomienie. Jeśli zostało to określone, a powiadomienie z tym samym tagiem jest już wyświetlane, nowe powiadomienie zastępuje istniejące w szufladzie powiadomień. |
click_action | Akcja powiązana z kliknięciem przez użytkownika powiadomienia. Jeśli określono, działanie z pasującym filtrem intencji zostanie uruchomione, gdy użytkownik kliknie powiadomienie. |
body_loc_key | Klucz do ciągu treści w zasobach ciągu aplikacji, który ma być używany do lokalizowania tekstu treści w bieżącej lokalizacji użytkownika. Aby uzyskać więcej informacji, zobacz Zasoby ciągów . |
body_loc_args[] | Zmienne wartości ciągu, które mają być używane zamiast specyfikatorów formatu w body_loc_key w celu zlokalizowania tekstu treści w bieżącej lokalizacji użytkownika. Aby uzyskać więcej informacji, zobacz Formatowanie i stylizacja . |
title_loc_key | Klucz do ciągu tytułu w zasobach ciągu aplikacji, który ma być używany do lokalizowania tekstu tytułu w bieżącej lokalizacji użytkownika. Aby uzyskać więcej informacji, zobacz Zasoby ciągów . |
title_loc_args[] | Zmienne wartości łańcuchowe, które mają być używane zamiast specyfikatorów formatu w kluczu_miejsca_tytułu w celu zlokalizowania tekstu tytułu w bieżącej lokalizacji użytkownika. Aby uzyskać więcej informacji, zobacz Formatowanie i stylizacja . |
channel_id | Identyfikator kanału powiadomienia (nowość w Androidzie O). Aplikacja musi utworzyć kanał z tym identyfikatorem kanału, zanim otrzymane zostanie powiadomienie z tym identyfikatorem kanału. Jeśli nie wyślesz tego identyfikatora kanału w żądaniu lub jeśli podany identyfikator kanału nie został jeszcze utworzony przez aplikację, FCM użyje identyfikatora kanału określonego w manifeście aplikacji. |
ticker | Ustawia tekst „tickera”, który jest wysyłany do usług ułatwień dostępu. Przed wersją API 21 ( |
sticky | Jeśli opcja ma wartość Fałsz lub jest nieskonfigurowana, powiadomienie zostanie automatycznie odrzucone, gdy użytkownik kliknie je w panelu. Po ustawieniu wartości true powiadomienie będzie kontynuowane nawet po kliknięciu przez użytkownika. |
event_time | Ustaw godzinę wystąpienia zdarzenia z powiadomienia. Powiadomienia w panelu sortowane są według tego czasu. Punkt w czasie jest reprezentowany za pomocą protobuf.Timestamp . Znacznik czasu w formacie RFC3339 UTC „Zulu”, z rozdzielczością nanosekundową i maksymalnie dziewięcioma cyframi ułamkowymi. Przykłady: |
local_only | Określ, czy to powiadomienie ma dotyczyć tylko bieżącego urządzenia. Niektóre powiadomienia można połączyć z innymi urządzeniami w celu zdalnego wyświetlania, takimi jak zegarek z systemem Wear OS. Tę wskazówkę można ustawić tak, aby zalecała, aby to powiadomienie nie było mostkowane. Zobacz przewodniki dotyczące Wear OS |
notification_priority | Ustaw względny priorytet tego powiadomienia. Priorytet wskazuje, ile uwagi użytkownika powinno zająć to powiadomienie. W niektórych sytuacjach powiadomienia o niskim priorytecie mogą być ukryte przed użytkownikiem, podczas gdy użytkownik może zostać przerwany w celu otrzymania powiadomienia o wyższym priorytecie. Efekt ustawienia tych samych priorytetów może się nieznacznie różnić na różnych platformach. Należy pamiętać, że ten priorytet różni się od |
default_sound | Jeśli ustawione na true, użyj domyślnego dźwięku platformy Android dla powiadomienia. Wartości domyślne są określone w pliku config.xml . |
default_vibrate_timings | Jeśli ustawione na true, użyj domyślnego wzorca wibracji platformy Android dla powiadomienia. Wartości domyślne są określone w pliku config.xml . Jeśli |
default_light_settings | Jeśli ma wartość true, w przypadku powiadomień użyj domyślnych ustawień oświetlenia LED platformy Android. Wartości domyślne są określone w pliku config.xml . Jeśli |
vibrate_timings[] | Ustaw wzór wibracji, który ma być używany. Przekaż tablicę protobuf.Duration , aby włączyć lub wyłączyć wibrator. Pierwsza wartość wskazuje Czas trwania w sekundach, zawierający maksymalnie dziewięć cyfr ułamkowych, kończący się na „ |
visibility | Ustaw widoczność powiadomienia. |
notification_count | Ustawia liczbę elementów reprezentowanych przez to powiadomienie. Może być wyświetlany jako liczba odznak w przypadku programów uruchamiających obsługujących odznaki. Zobacz Odznaka powiadomienia . Może to być na przykład przydatne, jeśli używasz tylko jednego powiadomienia do reprezentowania wielu nowych wiadomości, ale chcesz, aby liczba tutaj przedstawiała całkowitą liczbę nowych wiadomości. Jeśli zero lub nieokreślone, systemy obsługujące plakietki używają ustawienia domyślnego, które polega na zwiększaniu liczby wyświetlanej w menu po długim naciśnięciu za każdym razem, gdy nadejdzie nowe powiadomienie. |
light_settings | Ustawienia sterujące częstotliwością i kolorem migania diody LED powiadomienia, jeśli na urządzeniu dostępna jest dioda LED. Całkowity czas migania jest kontrolowany przez system operacyjny. |
image | Zawiera adres URL obrazu, który będzie wyświetlany w powiadomieniu. Jeśli jest obecny, zastąpi |
Priorytet powiadomienia
Poziomy priorytetów powiadomienia.
Wyliczenia | |
---|---|
PRIORITY_UNSPECIFIED | Jeśli priorytet nie jest określony, priorytet powiadomienia jest ustawiony na PRIORITY_DEFAULT . |
PRIORITY_MIN | Najniższy priorytet powiadomień. Powiadomienia z tym PRIORITY_MIN mogą nie być wyświetlane użytkownikowi z wyjątkiem szczególnych okoliczności, takich jak szczegółowe dzienniki powiadomień. |
PRIORITY_LOW | Niższy priorytet powiadomień. Interfejs użytkownika może wybrać wyświetlanie powiadomień w mniejszych rozmiarach lub w innej pozycji na liście w porównaniu z powiadomieniami z PRIORITY_DEFAULT . |
PRIORITY_DEFAULT | Domyślny priorytet powiadomień. Jeśli aplikacja nie ustala priorytetu własnych powiadomień, użyj tej wartości dla wszystkich powiadomień. |
PRIORITY_HIGH | Wyższy priorytet powiadomień. Użyj tej opcji, aby wyświetlić ważniejsze powiadomienia lub alerty. Interfejs użytkownika może wybrać wyświetlanie tych powiadomień w większym rozmiarze lub w innej pozycji na listach powiadomień w porównaniu z powiadomieniami z PRIORITY_DEFAULT . |
PRIORITY_MAX | Najwyższy priorytet powiadomień. Użyj tej opcji w przypadku najważniejszych elementów aplikacji, które wymagają natychmiastowej uwagi lub wprowadzenia danych przez użytkownika. |
Widoczność
Różne poziomy widoczności powiadomienia.
Wyliczenia | |
---|---|
VISIBILITY_UNSPECIFIED | Jeśli nie określono, domyślnie wybierz Visibility.PRIVATE . |
PRIVATE | Wyświetlaj to powiadomienie na wszystkich ekranach blokad, ale ukrywaj poufne lub prywatne informacje na bezpiecznych ekranach blokad. |
PUBLIC | Pokaż to powiadomienie w całości na wszystkich ekranach blokady. |
SECRET | Nie ujawniaj żadnej części tego powiadomienia na bezpiecznym ekranie blokady. |
Ustawienia światła
Ustawienia sterujące diodą powiadomień.
Reprezentacja JSON |
---|
{
"color": {
object ( |
Pola | |
---|---|
color | Wymagany. Ustaw |
light_on_duration | Wymagany. Wraz z Czas trwania w sekundach, zawierający maksymalnie dziewięć cyfr ułamkowych, kończący się na „ |
light_off_duration | Wymagany. Wraz z Czas trwania w sekundach, zawierający maksymalnie dziewięć cyfr ułamkowych, kończący się na „ |
Kolor
Reprezentuje kolor w przestrzeni kolorów RGBA. Ta reprezentacja została zaprojektowana z myślą o uproszczeniu konwersji do/z reprezentacji kolorów w różnych językach, a nie o zwartość. Na przykład pola tej reprezentacji można w prosty sposób udostępnić konstruktorowi java.awt.Color
w Javie; można go również w prosty sposób dostarczyć do metody +colorWithRed:green:blue:alpha
w iOS; i przy odrobinie pracy można go łatwo sformatować w ciągu CSS rgba()
w JavaScript.
Niniejsza strona referencyjna nie zawiera informacji o bezwzględnej przestrzeni barw, która powinna zostać wykorzystana do interpretacji wartości RGB (np. sRGB, Adobe RGB, DCI-P3, BT.2020 itp.). Domyślnie aplikacje powinny przyjmować przestrzeń kolorów sRGB.
Kiedy należy określić równość kolorów, implementacje, o ile nie udokumentowano inaczej, traktują dwa kolory jako równe, jeśli wszystkie ich wartości czerwonego, zielonego, niebieskiego i alfa różnią się co najwyżej o 1e-5.
Przykład (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();
}
// ...
Przykład (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;
}
// ...
Przykład (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('');
};
// ...
Reprezentacja JSON |
---|
{ "red": number, "green": number, "blue": number, "alpha": number } |
Pola | |
---|---|
red | Ilość czerwieni w kolorze jako wartość w przedziale [0, 1]. |
green | Ilość zieleni w kolorze jako wartość w przedziale [0, 1]. |
blue | Ilość koloru niebieskiego w kolorze jako wartość w przedziale [0, 1]. |
alpha | Część tego koloru, która powinna zostać zastosowana do piksela. Oznacza to, że ostateczny kolor piksela jest określony równaniem: Oznacza to, że wartość 1,0 odpowiada kolorowi jednolitemu, natomiast wartość 0,0 odpowiada kolorowi całkowicie przezroczystemu. Używa to komunikatu opakowującego zamiast prostego skalara zmiennoprzecinkowego, dzięki czemu możliwe jest rozróżnienie pomiędzy wartością domyślną a wartością nieustawioną. Jeśli zostanie pominięty, ten obiekt koloru będzie renderowany jako jednolity kolor (tak jakby wartość alfa miała jawnie wartość 1,0). |
Opcje AndroidaFcm
Opcje funkcji udostępnianych przez pakiet FCM SDK dla systemu Android.
Reprezentacja JSON |
---|
{ "analytics_label": string } |
Pola | |
---|---|
analytics_label | Etykieta powiązana z danymi analitycznymi wiadomości. |
Konfiguracja Webpush
Opcje protokołu Webpush .
Reprezentacja JSON |
---|
{
"headers": {
string: string,
...
},
"data": {
string: string,
...
},
"notification": {
object
},
"fcm_options": {
object ( |
Pola | |
---|---|
headers | Nagłówki HTTP zdefiniowane w protokole webpush. Informacje na temat obsługiwanych nagłówków można znaleźć w protokole Webpush , np. „TTL”: „15”. Obiekt zawierający listę par |
data | Dowolny ładunek klucza/wartości. Jeśli jest obecny, zastąpi Obiekt zawierający listę par |
notification | Opcje powiadomień internetowych jako obiekt JSON. Obsługuje właściwości instancji Notification zdefiniowane w Web Notification API . Jeśli są obecne, pola „title” i „treść” zastępują pola |
fcm_options | Opcje funkcji udostępnianych przez pakiet FCM SDK dla Internetu. |
Opcje WebpushFcm
Opcje funkcji udostępnianych przez pakiet FCM SDK dla Internetu.
Reprezentacja JSON |
---|
{ "link": string, "analytics_label": string } |
Pola | |
---|---|
link | Link otwierający się, gdy użytkownik kliknie powiadomienie. W przypadku wszystkich wartości adresów URL wymagany jest protokół HTTPS. |
analytics_label | Etykieta powiązana z danymi analitycznymi wiadomości. |
Konfiguracja Apns
Opcje specyficzne dla usługi powiadomień push Apple .
Reprezentacja JSON |
---|
{
"headers": {
string: string,
...
},
"payload": {
object
},
"fcm_options": {
object ( |
Pola | |
---|---|
headers | Nagłówki żądań HTTP zdefiniowane w usłudze Apple Push Notification Service. Informacje na temat obsługiwanych nagłówków, takich jak Zaplecze ustawia domyślną wartość dla Obiekt zawierający listę par |
payload | Ładunek APNs jako obiekt JSON, obejmujący zarówno słownik |
fcm_options | Opcje funkcji udostępnianych przez pakiet FCM SDK dla systemu iOS. |
Opcje ApnsFcm
Opcje funkcji udostępnianych przez pakiet FCM SDK dla systemu iOS.
Reprezentacja JSON |
---|
{ "analytics_label": string, "image": string } |
Pola | |
---|---|
analytics_label | Etykieta powiązana z danymi analitycznymi wiadomości. |
image | Zawiera adres URL obrazu, który będzie wyświetlany w powiadomieniu. Jeśli jest obecny, zastąpi |
Opcje Fcm
Niezależne od platformy opcje funkcji udostępnianych przez zestawy SDK FCM.
Reprezentacja JSON |
---|
{ "analytics_label": string } |
Pola | |
---|---|
analytics_label | Etykieta powiązana z danymi analitycznymi wiadomości. |
Metody | |
---|---|
| Wyślij wiadomość do określonego celu (tokenu rejestracji, tematu lub warunku). |