Co je tok zpráv?
Vlastnostflow je pole objektů kanálů. Každý objekt obsahuje přesně jeden klíč — sms, viber, whatsapp_text nebo whatsapp_template — spolu s konfigurací toho kanálu. SmsManager prochází pole od prvního k poslednímu: vyzkouší první kanál, a pokud selže nebo je nedostupný pro daného příjemce, přejde na druhý a tak dále.
Výchozí chování (bez flow)
Pokud do svého požadavku nezahrnete vlastnostflow, SmsManager použije SMS přes bránu high jako výchozí kanál. To je ekvivalentní zápisu:
body z kořene vašeho požadavku se použije jako text zprávy a platí standardní směrování SMS.
Příklady flow
Jednoduchý tok pouze pro SMS
Když chcete jemné řízení SMS — například určení jména odesílatele, brány nebo zpracování Unicode — definujte jednoprvkový flow s kanálemsms:
Viber s SMS zálohou (nejčastější vzor)
Toto je doporučený produkční vzor pro propagační nebo transakční zprávy. Nejprve se pokusí doručit přes Viber; pokud selže z jakéhokoli důvodu, zpráva přejde na SMS, abyste dosáhli každého příjemce.body na úrovni kanálu vám umožňují přizpůsobit obsah pro každý kanál.
WhatsApp šablona s SMS zálohou
Pro proaktivní oslovování, kdy vám příjemce jako první nenapsal, použijte předschválenou WhatsApp šablonu. Pokud doručení přes WhatsApp selže, SmsManager přejde na SMS.Podmínky selhání flow
SmsManager přeskočí kanál a zkusí další, když nastane některá z následujících podmínek: Viber- Příjemce nemá na svém zařízení nainstalovaný Viber.
- Viber
ttlvyprší před doručením zprávy.
- Určená šablona nebyla ještě schválena Metou.
- WhatsApp
ttlvyprší před doručením zprávy.
- Příjemce vám nikdy neposlal zprávu ani neodpověděl na jednu z vašich šablonových zpráv. WhatsApp textové zprávy jsou povoleny pouze v rámci 24hodinového zákaznického okna, které se otevře poté, co příjemce zahájí kontakt.
- Protože SMS je nejuniverzálnějším dostupným kanálem, jen zřídka selže na úrovni kanálu. Selhání SMS označuje hlubší problém (neplatné číslo, nedostatečný kredit apod.), nikoli problém dostupnosti kanálu.
Kdy se přejde na další kanál — ttl a ttl_condition
První objekt v poli flow je vždy ihned přijat a zařazen k odeslání. Ve stejném okamžiku vznikne pravidlo, které po uplynutí ttl zkontroluje výsledek odesílání — a podle něj se rozhodne, zda přejít na další kanál.
Pole ttl se zadává v minutách (typ float), nejméně 0.5 (30 sekund), nejvíce 43200 (30 dní). Hodnoty do 15 včetně mohou mít jedno desetinné místo (1.5 = 90 sekund); od 15 výše se zaokrouhluje nahoru na celé minuty (16.1 = 17 minut).
Co přesně znamená „doručeno” se ale liší kanál od kanálu — u SMS je sent často konečný účtovaný stav, kdežto u WhatsApp nebo Viberu sent ještě nezaručuje doručení. Proto lze podmínku splnění časového testu určit polem ttl_condition:
Hodnota
ttl_condition určuje, které stavy se považují za „splněno” (a tedy se další kanál neodešle):
WhatsApp šablona s SMS zálohou po 30 s
T+30s ověří, zda byla WhatsApp zpráva doručena. Pokud ano, SMS se už neodesílá; pokud ne, odejde SMS záloha.
Priorita body a sender
Polebody můžete definovat na kořenové úrovni požadavku i uvnitř jednotlivých objektů kanálů v flow. Pokud jsou přítomny obě hodnoty, body na úrovni kanálu má prioritu pro daný kanál. Pokud kanál nezadá své vlastní body, použije se kořenové body.