Protokół HTTP Firebase Cloud Messaging

.

Ten dokument zawiera informacje na temat składni HTTP używanej do przekazywania wiadomości z serwera aplikacji do aplikacji klienckich za pomocą Firebase Cloud Messaging.

W przypadku używania starszego protokołu HTTP serwer aplikacji musi kierować wszystkie żądania HTTP do tego punktu końcowego:

https://fcm.googleapis.com/fcm/send

Dostępne parametry i opcje należą do następujące ogólne kategorie:

Składnia kolejnych komunikatów

W tej sekcji znajdziesz składnię dotyczącą wysyłania wiadomości do urządzeń podrzędnych i interpretowania odpowiedzi HTTP z usługi Firebase Cloud Messaging.

Dodatkowe komunikaty HTTP (JSON)

W tabeli poniżej znajdziesz cele, opcje i ładunek dla wiadomości HTTP JSON.

Tabela 1. Docelowe, opcje i ładunek dla kolejnych komunikatów HTTP (w formacie JSON).

Parametr Wykorzystanie Opis
Cele
to Opcjonalny, ciąg znaków

Ten parametr określa adresata wiadomości.

Wartość może być tokenem rejestracji urządzenia, kluczem powiadomienia grupy urządzeń lub pojedynczym tematem (z przedrostkiem /topics/). Aby wysyłać do wielu tematów, użyj parametru condition.

registration_ids
Opcjonalny, tablica ciągów znaków

Ten parametr określa odbiorcę wiadomości wielodostępnej, czyli wiadomości wysłanej do więcej niż jednego tokena rejestracji.

Wartość powinna być tablicą tokenów rejestracji, do których należy wysłać wiadomość multicast. Tablica musi zawierać co najmniej 1 i maksymalnie 1000 tokenów rejestracji. Aby wysłać wiadomość do jednego urządzenia, użyj parametru to.

Komunikaty multicast są dozwolone tylko w formacie HTTP JSON.

condition Opcjonalny, ciąg znaków

Ten parametr określa wyrażenie logiczne warunków, które określić cel wiadomości.

Obsługiwany warunek: temat w formacie „TwójTemat” w tematach”. Wielkość liter w tej wartości nie ma znaczenia.

Obsługiwane operatory: &&||. Maksymalnie 2 operatorów na wiadomość w temacie.

notification_key
Wycofano
Opcjonalny, ciąg znaków

Ten parametr został wycofany. Zamiast tego użyj to, aby określić odbiorców wiadomości. Więcej informacji o wysyłaniu wiadomości na wiele urządzeń znajdziesz w dokumentacji dotyczącej Twojej platformy.

Opcje
collapse_key Opcjonalny, ciąg znaków

Ten parametr identyfikuje grupę wiadomości (np. z collapse_key: "Updates Available"), które można złożyć, aby po wznowieniu wysyłania wysyłana była tylko ostatnia wiadomość. Ma to na celu uniknięcie wysyłania wiele takich samych wiadomości, gdy urządzenie znów będzie online lub będzie aktywne.

Pamiętaj, że nie możemy zagwarantować kolejności wysyłania wiadomości.

Uwaga: w danym momencie dozwolone są maksymalnie 4 różne klucze zwijania. Oznacza to, że FCM może jednocześnie przechowywać 4 różne wiadomości na aplikację kliencką. Jeśli przekracza tę liczbę, nie ma gwarancji, które 4 klucze zwijania (FCM) zachowa.

priority Opcjonalny, ciąg znaków

Określa priorytet wiadomości. Prawidłowe wartości to „normal” i „high”. Na platformach Apple odpowiadają priorytetom 5 i 10 APNs.

Domyślnie powiadomienia są wysyłane z wysokim priorytetem oraz wiadomościami zawierającymi dane. wysyłane z normalnym priorytetem. Normalny priorytet optymalizuje zużycia baterii i należy go używać, chyba że wymagane jest natychmiastowe W przypadku wiadomości o normalnym priorytecie aplikacja może otrzymać wiadomość z nieokreślonym opóźnieniem.

Gdy wiadomość jest wysyłana z wysokim priorytetem, jest wysyłana natychmiast, a aplikacja może wyświetlić powiadomienie.

content_available Opcjonalne, wartość logiczna

Na platformach Apple użyj tego pola do reprezentowania tego pola w polu content-available Ładunek APNs. Gdy wysyłasz powiadomienie lub wiadomość, a ta opcja jest ustawiona na true, nieaktywna aplikacja klienta zostanie uruchomiona, a wiadomość zostanie wysłana przez APN jako powiadomienie bezdźwiękowe, a nie przez FCM. Pamiętaj, że nie można zagwarantować dostarczenia powiadomień bezdźwiękowych w usługach APN. Ich dostarczenie może zależeć od czynników takich jak włączenie przez użytkownika trybu niskiego poboru mocy czy przymusowe zamknięcie aplikacji. Na Androidzie wiadomości danych domyślnie budzą aplikację. Wł. Chrome, obecnie nieobsługiwany.

mutable_content Opcjonalny, logiczny typ danych JSON

Na platformach Apple użyj tego pola, aby określić, mutable-content w ładunku APNs. Gdy zostanie wysłane powiadomienie, do true, treść powiadomienia można zmienić przed jego wyświetleniem, za pomocą funkcji Rozszerzenie aplikacji usługi powiadomień. Ten parametr będzie ignorowany na urządzeniach z Androidem i w internecie.

time_to_live Opcjonalnie, liczba

Ten parametr określa, jak długo (w sekundach) wiadomość powinna być przechowywana w magazynie FCM, jeśli urządzenie jest offline. Maksymalny czas w przypadku obsługiwanego okresu ważności to 4 tygodnie, a wartość domyślna to 4 tygodnie. Więcej informacji znajdziesz w artykule Ustawianie okresu ważności wiadomości.

restricted_package_
name
(tylko Android)
Opcjonalny, ciąg znaków Ten parametr określa nazwę pakietu aplikacji, w której tokeny rejestracji muszą być zgodne, aby można było otrzymać wiadomość.
dry_run Opcjonalna, logiczna

Po ustawieniu tego parametru na true deweloperzy mogą testować żądania bez wysyłania wiadomości.

Wartością domyślną jest false.

Ładunek
data Opcjonalny, obiekt

Ten parametr określa niestandardowe pary klucz-wartość ładunku wiadomości.

Na przykład data:{"score":"3x1"}:

Na platformach Apple wiadomość jest wysyłana przez APN, czyli reprezentuje niestandardowe pola danych. Jeśli jest wysyłany za pomocą FCM, jest reprezentowany jako słownik klucz-wartość w AppDelegate application:didReceiveRemoteNotification:.

W przypadku Androida spowoduje to dodatkową intencję o nazwie score z wartością ciągu znaków 3x1.

Klucz nie powinien być słowem zastrzeżonym („from”, „message_type” lub dowolnym słowem rozpoczynającym się od „google” lub „gcm”). Nie używaj żadnych słów zdefiniowanych w tej tabeli (np. collapse_key).

Zalecamy stosowanie wartości typu ciąg tekstowy. Musisz przekonwertować wartości w obiektach lub innych typach danych niebędących ciągami znaków (np. liczby całkowite lub logiczne) na ciąg znaków.

notification Opcjonalny, obiekt Ten parametr określa wstępnie zdefiniowane, widoczne dla użytkowników pary klucz-wartość: ładunek powiadomień. Szczegółowe informacje znajdziesz w sekcji dotyczącej obsługi ładunku powiadomienia. Więcej informacji o opcjach wiadomości z powiadomieniem i wiadomości danych znajdziesz w artykule Typy wiadomości. Jeśli został podany ładunek powiadomień lub Opcja content_available ma wartość true w przypadku wiadomości do Apple na urządzeniu, wiadomość jest wysyłana za pośrednictwem punktów APN, w przeciwnym razie jest wysyłana przez FCM.

Obsługa ładunku powiadomień

W poniższych tabelach znajdziesz zdefiniowane wstępnie klucze, które możesz wykorzystać do tworzenia wiadomości powiadomień na iOS i Androida.

Tabela 2a. iOS – klucze do obsługi wiadomości z powiadomieniami

Parametr Wykorzystanie Opis
title Opcjonalny, ciąg znaków

Tytuł powiadomienia.

To pole jest niewidoczne na telefonach i tabletach.

body Opcjonalny, ciąg znaków

Treść powiadomienia.

sound Opcjonalny, ciąg znaków

Dźwięk do odtwarzania, gdy urządzenie otrzyma powiadomienie.

Ciąg znaków określający pliki dźwiękowe w głównym pakiecie aplikacji klienckiej lub w pliku Folder Library/Sounds kontenera danych aplikacji. Zobacz w Bibliotece deweloperów iOS, aby dowiedzieć się więcej.

badge Opcjonalny, ciąg znaków

Wartość plakietki na ikonie aplikacji na ekranie głównym.

Jeśli nie określisz żadnej wartości, plakietka nie ulegnie zmianie.

Jeśli ma wartość 0, plakietka zostanie usunięta.

click_action Opcjonalny, ciąg znaków

Działanie powiązane z użytkownikiem kliknie powiadomienie.

Odpowiada category w pliku danych APN.

subtitle Opcjonalny, ciąg znaków

Podtytuł powiadomienia.

body_loc_key Opcjonalnie: ciąg znaków

Klucz do ciągu treści w zasobach ciągu tekstowego aplikacji, który ma być używany do zlokalizuj tekst główny do bieżącej lokalizacji użytkownika.

Odpowiada loc-key w pliku danych APN.

Zobacz Dokumentacja klucza ładunku Lokalizuję zawartość powiadomień zdalnych, aby dowiedzieć się więcej i informacjami o nich.

body_loc_args Opcjonalnie, tablica JSON jako ciąg znaków

Ciągi znaków zmiennych, które mają być używane zamiast specyfikatorów formatu w body_loc_key, który służy do lokalizowania tekstu głównego w sekcji bieżącej lokalizacji użytkownika.

Odpowiada parametrowi loc-args w ładunku APNs.

Więcej informacji znajdziesz w artykule Referencje dotyczące klucza danych payloadLokalizacja treści powiadomień zdalnych.

title_loc_key Opcjonalny, ciąg znaków

Klucz do ciągu znaków tytułu w zasobach ciągu znaków aplikacji, który służy do zlokalizowania tekstu tytułu w bieżącej lokalizacji użytkownika.

Odpowiada wartości title-loc-key w pliku danych APN.

Zobacz Dokumentacja klucza ładunku Lokalizuję zawartość powiadomień zdalnych, aby dowiedzieć się więcej i informacjami o nich.

title_loc_args Opcjonalnie tablica JSON jako ciąg znaków

Ciągi znaków zmiennych, które mają być używane zamiast specyfikatorów formatu w title_loc_key służy do zlokalizowania tekstu tytułu w sekcji bieżącej lokalizacji użytkownika.

Odpowiada parametrowi title-loc-args w ładunku APNs.

Więcej informacji znajdziesz w artykule Referencje dotyczące klucza danych payloadTłumaczenie treści powiadomień zdalnych.

Tabela 2b. Android – klucze do obsługi powiadomień

Parametr Wykorzystanie Opis
title Opcjonalny, ciąg znaków

Tytuł powiadomienia.

body Opcjonalnie: ciąg znaków

Treść powiadomienia.

android_channel_id Opcjonalny, ciąg znaków

Identyfikator kanału powiadomienia (nowy w Androidzie O).

Aplikacja musi utworzyć kanał z tym identyfikatorem, zanim powiadomienie z tym identyfikatorem zostanie odebrane.

Jeśli nie prześlesz tego identyfikatora kanału w żądaniu lub jeśli podany identyfikator kanału nie został jeszcze utworzony przez aplikację, FCMużyje identyfikatora kanału określonego w pliku manifestu aplikacji.

icon Opcjonalnie: ciąg znaków

Ikona powiadomienia.

Ustawia ikonę powiadomień na myicon dla zasobu rysowalnego myicon Jeśli nie wyślesz tego klucza w żądaniu, FCM wyświetla ikonę programu uruchamiającego określoną w manifeście aplikacji.

sound Opcjonalny, ciąg znaków

Dźwięk odtwarzany, gdy urządzenie otrzyma powiadomienie.

Obsługuje "default" lub nazwę pliku zasobu dźwiękowego dołączonego do aplikacji. Pliki dźwiękowe muszą znajdować się w folderze /res/raw/.

tag Opcjonalny, ciąg znaków

Identyfikator używany do zastępowania obecnych powiadomień w powiadomieniu szuflady.

Jeśli nie zostanie określone inaczej, każda prośba powoduje utworzenie nowego powiadomienia.

Jeśli został określony, a powiadomienie z tym samym tagiem jest już wysyłane nowe powiadomienie zastąpi dotychczasowe panelu powiadomień.

color Opcjonalny, ciąg znaków

Kolor ikony powiadomienia wyrażony w formacie #rrggbb.

click_action Opcjonalnie: ciąg znaków

Działanie powiązane z kliknięciem powiadomienia przez użytkownika.

Jeśli określisz działanie z pasującym filtrem intencji, zostanie ono uruchomione, gdy użytkownik klika je.

body_loc_key Opcjonalny, ciąg znaków

Klucz do ciągu tekstowego w zasobach ciągów tekstowych aplikacji, który służy do zlokalizowania tekstu w ramach bieżącej lokalizacji użytkownika.

Więcej informacji znajdziesz w zasobach napisów.

body_loc_args Opcjonalnie tablica JSON jako ciąg znaków

Ciągi znaków zmiennych, które mają być używane zamiast specyfikatorów formatu w body_loc_key, który służy do lokalizowania tekstu głównego w sekcji bieżącej lokalizacji użytkownika.

Więcej informacji znajdziesz w sekcji Formatowanie i stylowanie.

title_loc_key Opcjonalny, ciąg znaków

Klucz do ciągu tytułu w zasobach ciągu tekstowego aplikacji, który ma służyć do przetłumaczyć tekst tytułu do bieżącej lokalizacji użytkownika.

Więcej informacji znajdziesz w zasobach napisów.

title_loc_args Opcjonalnie, tablica JSON jako ciąg znaków

zmienne wartości ciągu znaków, które mają być używane zamiast specyfikatorów formatu w title_loc_key do użycia w celu zlokalizowania tekstu tytułu zgodnie z bieżącą lokalizacją użytkownika.

Więcej informacji znajdziesz w sekcji Formatowanie i stylowanie.

Tabela 2c Internet (JavaScript) – klucze do wiadomości powiadomień

Parametr Wykorzystanie Opis
title Opcjonalny, ciąg znaków

Tytuł powiadomienia.

body Opcjonalnie: ciąg znaków

Treść powiadomienia.

icon Opcjonalny, ciąg znaków

Adres URL ikony powiadomienia.

click_action Opcjonalny, ciąg znaków

Działanie powiązane z użytkownikiem kliknie powiadomienie.

W przypadku wszystkich wartości adresu URL wymagany jest protokół HTTPS.

wiadomości HTTP w kierunku zewnątrz (zwykły tekst);

Tabela poniżej zawiera składnię kierowania, opcji i ładunku w zwykłych wiadomościach HTTP.

Tabela 3. Docelowe adresy, opcje i ładunek dla kolejnych wiadomości HTTP w postaci zwykłego tekstu.

Parametr Wykorzystanie Opis
Cele
registration_id Wymagane, ciąg znaków

Ten parametr określa aplikacje klienckie (tokeny rejestracji) otrzymujące wiadomość.

Przesyłanie zbiorcze (na więcej niż 1 token rejestracji) jest dozwolone tylko przy użyciu formatu JSON HTTP.

Opcje
collapse_key Opcjonalnie: ciąg znaków Szczegółowe informacje znajdziesz w tabeli 1.
time_to_live Opcjonalnie, liczba Szczegółowe informacje znajdziesz w tabeli 1.
restricted_package_name Opcjonalny, ciąg znaków Szczegółowe informacje znajdziesz w tabeli 1.
dry_run Opcjonalna, logiczna Szczegółowe informacje znajdziesz w tabeli 1.
Ładunek
data.<key> Opcjonalnie: ciąg znaków

Ten parametr określa pary klucz-wartość ładunku wiadomości. Nie ma limitu liczby parametrów klucz-wartość, ale obowiązuje limit 4096 bajtów.

Na przykład w Androidzie wartość "data.score"."3x1" spowoduje utworzenie dodatkowego atrybutu intencji o nazwie score o wartości ciągu znaków 3x1.

Klucz nie powinien być słowem zastrzeżonym („from”, „message_type” lub dowolnym słowem rozpoczynającym się od „google” lub „gcm”). Nie używaj żadnych słów z tabeli (np. collapse_key).

Interpretowanie odpowiedzi wiadomości na dalszym etapie

Serwer aplikacji powinien ocenić zarówno nagłówek odpowiedzi, jak i treść wiadomości aby zinterpretować odpowiedź na wiadomość wysłaną z adresu FCM. W tabeli poniżej znajdziesz możliwe odpowiedzi.

Tabela 4. Nagłówek odpowiedzi wiadomości HTTP w kierunku odległym.

Odpowiedź Opis
200 Wiadomość została przetworzona. Treść odpowiedzi będzie zawierać więcej informacji o stanie wiadomości, ale jej format będzie zależał od tego, czy żądanie było w formacie JSON, czy w zwykłym tekście. Więcej informacji znajdziesz w tabeli 5.
400 Dotyczy tylko żądań JSON. Wskazuje, że nie udało się przeanalizować żądania jako pliku JSON lub zawierało ono nieprawidłowe dane (np. przez przekazanie ciągu znaków, gdzie oczekiwano liczby). Dokładny powód błędu jest opisany w odpowiedzi. Należy rozwiązać problem, zanim żądanie zostanie ponownie wysłane.
401 Podczas uwierzytelniania konta nadawcy wystąpił błąd.
5xx Błędy z zakresu 500–599 (np. 500 lub 503) wskazują, że został podczas próby przetworzenia żądania wystąpił błąd wewnętrzny w backendzie FCM; serwer jest tymczasowo niedostępny (np. z powodu przekroczenia limitu czasu oczekiwania). Nadawca musi spróbować ponownie później, uwzględniając wszystkie nagłówki Retry-After zawarte w parametrze . Serwery aplikacji muszą implementować wykładniczy czas ponowienia.

Tabela poniżej zawiera listę pól w treści odpowiedzi wiadomości podrzędnej (JSON).

Tabela 5 Treść odpowiedzi HTTP (JSON).

Parametr Wykorzystanie Opis
multicast_id Wymagany, liczba Unikalny identyfikator (numer) identyfikujący wiadomość multicast.
success Wymagany, liczba Liczba wiadomości, które zostały przetworzone bez błędów.
failure Wymagany, liczba Liczba wiadomości, których nie udało się przetworzyć.
results Wymagana tablica obiektów Tablica obiektów reprezentujących stan przetworzonych wiadomości. Obiekty są wymienione w tej samej kolejności co żądanie (czyli dla każdego identyfikatora rejestracji w żądaniu jego wynik jest wymieniony pod tym samym indeksem w odpowiedzi).
  • message_id: ciąg znaków określający unikalny identyfikator każdego przetworzonego pliku. .
  • error: ciąg znaków określający błąd, który wystąpił podczas przetwarzania wiadomość dla adresata. Możliwe wartości znajdziesz w tabeli 9.

Tabela 6. Treść odpowiedzi HTTP wiadomości z tematu (JSON).

Parametr Wykorzystanie Opis
message_id Opcjonalnie, liczba Identyfikator wiadomości dotyczącej tematu, gdy FCM otrzymała prośbę i będzie próbować dostarczyć ją do wszystkich subskrybowanych urządzeń.
error Opcjonalnie: ciąg znaków Podczas przetwarzania wiadomości wystąpił błąd. Możliwe wartości znajdziesz w tabeli 9.

Tabela 7. Odpowiedź o powiadomieniu o udanym przetworzeniu treści odpowiedzi HTTP (zwykły tekst).

Parametr Wykorzystanie Opis
id Wymagane, ciąg znaków Ten parametr określa unikalny identyfikator wiadomości FCM, który został pomyślnie przetworzony.
registration_id Opcjonalny, ciąg znaków Ten parametr określa token rejestracji aplikacji klienckiej, do której wysłano i przetworzono wiadomość.

Tabela 8 Odpowiedź błędu dotyczącego treści odpowiedzi HTTP (zwykły tekst) na kolejnym ekranie.

Parametr Wykorzystanie Opis
Error Wymagane, ciąg znaków Ten parametr określa wartość błędu podczas przetwarzania wiadomości dla odbiorcy. Szczegółowe informacje znajdziesz w tabeli 9.

Kody odpowiedzi na błędy w kolejnych komunikatach

Tabela poniżej zawiera kody odpowiedzi na błędy w kolejnych komunikatach.

Tabela 9 Kody odpowiedzi na błędy w kolejnych komunikatach.

Błąd Kod HTTP Zalecane działanie
Brak tokena rejestracji Błąd 200 i brak rejestracji Sprawdź, czy żądanie zawiera token rejestracji (w polu registration_id w wiadomości tekstowej lub w polu to bądź registration_ids w formacie JSON).
Nieprawidłowy token rejestracji 200 + błąd:nieprawidłowa rejestracja Sprawdź format tokena rejestracji, który przekazujesz do serwera. Upewnij się, że token rejestracji jest zgodny z tokenem rejestracji, który aplikacja kliencka otrzymuje podczas rejestracji w Firebase Notifications. Nie skracaj ich ani nie dodawaj dodatkowych znaków.
Niezarejestrowane urządzenie 200 + błąd: NotRegistered Istniejący token rejestracji może stracić ważność w wielu sytuacjach, między innymi w tych przypadkach:
  • Jeśli aplikacja kliencka wyrejestruje się z FCM.
  • Jeśli aplikacja kliencka zostanie automatycznie wyrejestrowana, co może się zdarzyć, gdy użytkownik odinstaluje aplikację. Na przykład w iOS, jeśli punkty APN Usługa Feedback Service zgłosiła token APNs jako nieprawidłowy.
  • Jeśli token rejestracji wygaśnie (na przykład Google może zdecydować się na odświeżenie strony tokeny rejestracji lub token APNs wygasł w przypadku urządzeń z iOS).
  • Jeśli aplikacja kliencka została zaktualizowana, ale nowa wersja nie jest skonfigurowana do odbierania wiadomości.
W takich przypadkach usuń ten token rejestracji z serwera aplikacji i przestań go używać do wysyłania wiadomości.
Nieprawidłowa nazwa pakietu 200 + błąd:InvalidPackageName Upewnij się, że wiadomość była zaadresowana na token rejestracji, którego nazwa pakietu pasuje do wartości przekazywanej w żądaniu.
Błąd uwierzytelniania 401 Nie udało się uwierzytelnić konta nadawcy użytego do wysłania wiadomości. Możliwe przyczyny:
  • Brak nagłówka autoryzacji lub nieprawidłowa składnia w żądaniu HTTP.
  • Projekt Firebase, do którego należy podany klucz serwera, jest nieprawidłowy.
  • Tylko starsze klucze serwera – żądanie pochodzi z serwera, którego nie ma na białej liście adresów IP klucza serwera.
Sprawdź, czy token wysyłany w nagłówku uwierzytelniania to właściwy klucz serwera powiązany z Twoim projektem. Zobacz Sprawdzanie poprawności klucza serwera . Jeśli używasz starszego klucza serwera, zalecamy uaktualnienie klucza do nowego, który nie ma ograniczeń adresów IP. Zobacz Migracja starszych kluczy serwera
Niezgodny nadawca 200 i błąd:MismatchSenderId Token rejestracji jest powiązany z określoną grupą nadawców. Gdy aplikacja kliencka się rejestruje w przypadku FCM, musi określać, którzy nadawcy mogą wysyłać wiadomości. Należy użyć jednej tych identyfikatorów nadawców podczas wysyłania wiadomości do aplikacji klienckiej. Jeśli przełączysz się na inny istniejące tokeny rejestracji nie będą działać.
Nieprawidłowy plik JSON 400 Sprawdź, czy wiadomość JSON jest prawidłowo sformatowana i zawiera prawidłowe pola (np. sprawdzając, czy przekazano odpowiedni typ danych).
Nieprawidłowe parametry 400 + błąd: InvalidParameters Sprawdź, czy podane parametry mają prawidłową nazwę i typ.
Wiadomość jest za duża 200 + błąd: MessageTooBig Sprawdź, czy łączny rozmiar danych w ładunku wiadomości nie przekracza limitów FCM: 4096 bajtów w przypadku większości wiadomości lub 2048 bajtów w przypadku wiadomości do tematów. Dotyczy to zarówno kluczy, jak i wartości.
Nieprawidłowy klucz danych Błąd 200 +:
InvalidDataKey
Sprawdź, czy dane ładunku nie zawierają klucza (np. from, gcm lub dowolnej wartości z preiksem google), który jest używany wewnętrznie przez FCM. Pamiętaj, że niektóre słowa (np. collapse_key) są również używane przez funkcję FCM, ale są dozwolone w ładunku, gdzie Gdy wartość ładunku zostanie zastąpiona wartością FCM.
Nieprawidłowy czas życia 200 + błąd:InvalidTtl Sprawdź, czy wartość użyta w funkcji time_to_live jest liczbą całkowitą reprezentującą czas trwania w sekundach z zakresu 0–2 419 200 (4 tygodnie).
Czas oczekiwania 5xx lub 200 + błąd:niedostępne

Serwer nie mógł przetworzyć żądania na czas. Ponownie wyślij to samo żądanie, ale musisz:

  • Uwzględnij nagłówek Retry-After, jeśli jest on zawarty w odpowiedzi serwera połączenia FCM.
  • W mechanizmie ponownych prób zastosuj wzrastający czas do ponowienia. (np. jeśli odczekano jedną sekundę przed pierwszą próbą, odczekaj co najmniej dwie sekundy przed następną, potem 4 sekundy itd.). Jeśli wysyłasz wiele wiadomości, opóźnij każdą z nich niezależnie o dodatkowy losowy czas, aby uniknąć wysyłania nowej prośby o wykonanie wszystkich zapytań w tym samym czasie.

Nadawcy, którzy powodują problemy, mogą zostać umieszczeni na liście zablokowanych.

Wewnętrzny błąd serwera 500 lub 200 + błąd: Wewnętrzny błąd serwera Podczas próby przetworzenia żądania serwer napotkał błąd. Możesz spróbować jeszcze raz to samo żądanie zgodnie z wymaganiami wymienionymi w sekcji „Limit czasu” (zobacz wiersz powyżej). Jeśli błąd będzie się powtarzał, skontaktuj się z zespołem pomocy Firebase.
Przekroczono częstotliwość wiadomości z urządzenia Błąd 200 i nowsze:
DeviceMessageRate
Exceeded

Liczba wiadomości wysyłanych na konkretne urządzenie jest zbyt wysoka. Jeśli aplikacja Apple wysyła wiadomości z częstotliwością przekraczającą limity APNs, może zobaczyć ten komunikat o błędzie

Zmniejsz liczbę wiadomości wysyłanych na to urządzenie i użyj wykładniczego zmniejszania częstotliwości wysyłania, aby spróbować ponownie.

Przekroczony limit częstotliwości wysyłania wiadomości o tematach Błąd 200 +:
TopicsMessageRate
Exceeded
Częstotliwość wiadomości do subskrybentów określonego tematu jest zbyt duża. Zmniejsz liczbę wiadomości wysyłanych w danym temacie i użyj wzrastającego czasu do ponownej próby, aby ponownie spróbować wysłać wiadomość.
Nieprawidłowe dane logowania APNs 200 i błąd:
Nieprawidłowe dane logowania API
Nie udało się wysłać wiadomości kierowanej na urządzenie Apple, ponieważ wymagane punkty APN nie przesłano klucza uwierzytelniania lub wygasł. Sprawdź poprawność danych logowania do wersji rozwojowej i produkcyjnej.

Zarządzanie grupami urządzeń

W tabeli poniżej znajdziesz listę kluczy do tworzenia grup urządzeń oraz dodawanie i usuwanie członków. Więcej informacji: dla swojej platformy, iOS+ lub na urządzeniu z Androidem.

Tabela 10. Klucze do zarządzania grupami urządzeń.

Parametr Wykorzystanie Opis
operation Wymagane, ciąg znaków Operacja do uruchomienia.Prawidłowe wartości to create, add i remove.
notification_key_name Wymagane, ciąg znaków Zdefiniowana przez użytkownika nazwa grupy urządzeń do utworzenia lub zmodyfikowania.
notification_key Wymagany (oprócz operacji create, ciąg znaków) Unikalny identyfikator grupy urządzeń. Ta wartość jest zwracana w odpowiedzi na operację create, która się powiodła, i jest wymagana do wszystkich kolejnych operacji na grupie urządzeń.
registration_ids Wymagane, tablica ciągów znaków tokeny urządzeń do dodania lub usunięcia. Jeśli usuniesz wszystkie istniejące tokeny rejestracji z grupy urządzeń, FCM usunie tę grupę.