app-notification
Opis
Bloczek app-notification służy do wysyłania powiadomień push do aplikacji mobilnych użytkowników. Tytuł i treść powiadomienia są definiowane w konfiguracji bloczka, a ich fragmenty mogą być uzupełniane bieżącymi wartościami doprowadzonymi z bloczków tag.
Bloczek nie posiada wyjść. Do działania wymaga co najmniej jednego połączenia z bloczka innego niż tag, które będzie wyzwalało próbę wysłania powiadomienia.
Bloczek zapamiętuje ostatnie wartości odebrane z bloczków tag, liczbę skutecznie wysłanych powiadomień oraz informację o ostatnim błędzie wysyłki albo blokady.
Parametry konfiguracyjne
| Nazwa parametru | Wartość |
|---|---|
send_to_all |
Parametr obowiązkowy typu logicznego true albo false. Gdy ustawione jest true, powiadomienie jest kierowane do wszystkich użytkowników mających adres e-mail powiązany z kontem. Gdy ustawione jest false, odbiorcy są wybierani parametrem send_to. |
send_to |
Parametr obowiązkowy, gdy send_to_all = false. Zawiera listę loginów użytkowników rozdzielonych przecinkami. Niepoprawne wpisy są odfiltrowywane. Jeśli po odfiltrowaniu nie zostanie żaden poprawny login, konfiguracja jest błędna. |
send_uncompleted_messages |
Parametr obowiązkowy typu logicznego true albo false. Gdy ustawione jest false, bloczek nie wyśle powiadomienia, jeśli choć jeden placeholder z title albo message nie ma jeszcze odebranej wartości z odpowiedniego bloczka tag. Gdy ustawione jest true, takie powiadomienie może zostać wysłane, a brakujące miejsca zostaną zastąpione tekstem {?}. |
block_repeated_values |
Parametr obowiązkowy typu logicznego true albo false. Gdy ustawione jest true, bloczek nie wyśle kolejnego powiadomienia, jeśli pełny tytuł i pełna treść są identyczne jak w ostatnim skutecznie wysłanym powiadomieniu. |
high_priority |
Parametr obowiązkowy typu logicznego true albo false. Określa, czy powiadomienia wysyłane przez ten bloczek mają być oznaczone jako wysokiego priorytetu. |
title |
Parametr obowiązkowy. Określa tytuł powiadomienia. Wartość nie może być pusta. W tekście można używać placeholderów w postaci {X}, gdzie X oznacza numer taga, na przykład {1} albo {2}. |
message |
Parametr obowiązkowy. Określa treść powiadomienia. Wartość nie może być pusta. W tekście można używać placeholderów w postaci {X}, gdzie X oznacza numer taga. |
Obsługa wejścia
Bloczek dopuszcza wiele połączeń do wejścia.
Na wejściu obsługiwane są dwa rodzaje sygnałów:
- wartości pochodzące z bloczków
tag, które służą do uzupełniania placeholderów{X}wtitleimessage - wartość true pochodząca z bloczka innego niż
tag, która wyzwala próbę wysłania powiadomienia
Inne sygnały z bloczków niebędących tag, takie jak false, liczby, tekst albo null, są ignorowane.
Wartości odebrane z bloczków tag są zapamiętywane jako ostatnia wartość danego numeru taga. Przy podstawianiu do tytułu i treści używana jest tekstowa reprezentacja wartości bez jednostki. Jeśli odebranej wartości nie da się przedstawić tekstowo, taka zmiana nie aktualizuje zapamiętanej wartości taga.
Bloczek obsługuje dynamiczne wejścia oznaczane przez bloczek tag:
| Numer i nazwa wejścia | Opis działania |
|---|---|
tagX: Wartość podstawiana do {X}. |
Każdy placeholder {X} użyty w title albo message musi mieć odpowiadający mu podłączony bloczek tag o numerze X. Jednocześnie każdy podłączony bloczek tag musi być użyty przynajmniej raz w title albo message. |
Próba wysłania powiadomienia po odebraniu wartości true przebiega w następujący sposób:
- z
titleimessagetworzona jest pełna treść przez podstawienie ostatnio odebranych wartości tagów - jeśli
send_uncompleted_messages = falsei brakuje choć jednej wartości taga, powiadomienie nie zostanie wysłane - jeśli
send_uncompleted_messages = true, brakujące wartości zostaną zastąpione tekstem{?} - jeśli
block_repeated_values = truei pełny tytuł oraz pełna treść są identyczne jak w ostatnio wysłanym powiadomieniu, wysyłka zostanie zablokowana - jeśli nie uda się wyznaczyć żadnego adresu e-mail odbiorców, wysyłka również nie nastąpi
Bloczek wymaga co najmniej jednego podłączonego źródła wyzwalającego, czyli bloczka innego niż tag. Same połączenia z bloczków tag nie wystarczą do poprawnej konfiguracji.
Wyjścia bloczka
Bloczek nie posiada wyjść.
Opis statusu bloczka
Dla poprawnie działającego bloczka opis statusu ma postać:
Notifications sent: X.
albo:
Notifications sent: X, last error: Y
gdzie:
Xoznacza liczbę skutecznie wysłanych powiadomieńYoznacza ostatni błąd lub powód zablokowania wysyłki
Pole last error może wskazywać między innymi:
- brak kompletu wartości tagów przy
send_uncompleted_messages = false - próbę ponownego wysłania identycznego powiadomienia przy
block_repeated_values = true - brak adresów e-mail odbiorców
- błąd zwrócony przez mechanizm wysyłki powiadomień
Błędy zwracane przez bloczek
Bloczek może zwracać następujące błędy:
| Kod błędu | Opis błędu |
|---|---|
Missing parameter 'send_to_all'. |
W konfiguracji nie podano parametru send_to_all. |
Missing parameter 'send_to'. |
Parametr send_to_all ma wartość false, ale w konfiguracji nie podano parametru send_to. |
Empty 'send_to' parameter. |
Parametr send_to został podany, ale jest pusty. |
No valid users specified. |
Po odfiltrowaniu niepoprawnych wpisów z send_to nie został żaden poprawny login użytkownika. |
Missing parameter 'send_uncompleted_messages'. |
W konfiguracji nie podano parametru send_uncompleted_messages. |
Missing parameter 'block_repeated_values'. |
W konfiguracji nie podano parametru block_repeated_values. |
Missing parameter 'high_priority'. |
W konfiguracji nie podano parametru high_priority. |
Missing parameter 'title'. |
W konfiguracji nie podano parametru title. |
Empty title. |
Parametr title jest pusty. |
Missing parameter 'message'. |
W konfiguracji nie podano parametru message. |
Empty message. |
Parametr message jest pusty. |
Missing {X} in title or message. |
Do bloczka podłączono bloczek tagX, ale jego numer nie został użyty ani w title, ani w message. |
Missing tagX. |
W title albo message użyto placeholdera {X}, ale nie podłączono odpowiadającego mu bloczka tagX. |
Missing non-tag block. |
Do bloczka nie podłączono żadnego źródła wyzwalającego innego niż bloczek tag. |
Przykłady działania
- Jeśli
title = Alarm w {1},message = Temperatura osiągnęła {2}, do bloczka podłączonotag1z ostatnią wartościąKuchnia,tag2z ostatnią wartością28.5, a z innego bloczka na wejście dotrze wartość true, to zostanie wysłane powiadomienie o tytuleAlarm w Kuchniai treściTemperatura osiągnęła 28.5. - Jeśli
message = Czujnik {1}: {2}, ale przed wyzwoleniem wysyłki odebrano tylko wartość dlatag1, to przysend_uncompleted_messages = falsepowiadomienie nie zostanie wysłane. - W tej samej sytuacji, jeśli
send_uncompleted_messages = true, brakująca wartość zostanie zastąpiona tekstem{?}, więc treść może przyjąć postaćCzujnik Salon: {?}. - Jeśli
block_repeated_values = truei dwa kolejne wyzwolenia wysyłki wygenerują dokładnie ten sam tytuł i dokładnie tę samą treść, to drugie powiadomienie zostanie zablokowane. - Jeśli
send_to_all = false, a parametrsend_tozawiera kilka loginów rozdzielonych przecinkami, to powiadomienie zostanie skierowane tylko do użytkowników z tej listy, dla których system potrafi wyznaczyć adres e-mail odbiorcy.