/messages vám umožňuje sbalit až 10 objektů zpráv, každý s až 10 příjemci, do jednoho API volání — to je až 100 doručení příjemcům na požadavek. Je to nejefektivnější způsob pro zvýšení propustnosti odesílání. Pokud potřebujete odeslat tisíce až statisíce zpráv, můžete místo mnoha HTTP požadavků nahrát jeden JSONL soubor — viz Hromadné nahrání souboru přes REST API níže.
Dvě cesty hromadného odesílání
Potřebujete odeslat více než 100 příjemců najednou? Použijte hromadné nahrání JSONL souboru přes REST API (
POST /messaging/url, viz REST API). Skill smsmanager-bulk-messaging z balíčku SmsManager skills umí soubor vygenerovat, nahrát a naplánovat za vás.Kdy použít hromadné odesílání
- Kampaně — odesílejte marketingový obsah seznamu odběratelů v co nejmenším počtu API volání.
- Skupinová oznámení — informujte tým, třídu nebo zákaznický segment jediným požadavkem.
- Personalizované zprávy — dejte každému objektu zprávy vlastní
bodyneboflowpro přizpůsobení na příjemce, bez API volání na osobu.
Jak hromadné odesílání funguje
Místo odeslání jednoho objektu zprávy naPOST /message odešlete pole objektů zpráv na POST /messages. Každý prvek pole je nezávislá zpráva s vlastním body, to, flow, tag, callback a payload.
Tělo požadavku
Tento příklad odešle 3 zprávy (zpráva “Ahoj Alice!” bude doručena na 2 telefonní čísla, zpráva “Ahoj Bobe!” bude doručena na jedno telefonní číslo).
cURL
Formát odpovědi
Odpověď obsahujerequest_id na nejvyšší úrovni a dvě pole — accepted (dva požadavky zařazené k doručení) a rejected (požadavky, které selhaly při validaci). Každý přijatý požadavek obsahuje key (index objektu zprávy v poli) a message_id pro sledování.
Odpověď
rejected s key odpovídajícím jejich pozici v poli a popisem chyby. Platné objekty zpráv ve stejném požadavku jsou i tak přijaty a zařazeny.
Získání message ID pro jednotlivé příjemce
Každý příjemce dostane vlastnímessage_id odvozené z dávkového message_id pomocí přípony indexu od nuly: -0, -1, -2 atd.
Například, u message_id e27ff0ac-87b5-4e1d-b644-5fc6029e2a11 požadavku, který má dva příjemce:
Doručovací webhooky obsahují tato ID s příponou, takže můžete propojit každou událost doručení zpět na konkrétního příjemce.
Smíšené kanály v dávce
Každý objekt zprávy v poli má vlastní nezávisléflow. To znamená, že můžete odeslat SMS jedné skupině a Viber zprávu (s SMS zálohou) jiné skupině ve stejném API volání.
Dávka smíšených kanálů
Limity
Kompletní cURL příklad
cURL
Hromadné nahrání souboru přes REST API
Když odesíláte tisíce až statisíce zpráv, je volání/messages po stovkách příjemců nepraktické: musíte řídit souběžnost a rychlost požadavků, ošetřit návratový kód každého z nich a opakovat neúspěšná volání. REST API endpoint POST /messaging/url vám místo toho vrátí předpodepsanou URL, na kterou nahrajete celý seznam zpráv jako jeden JSONL soubor (JSON Lines — jeden objekt zprávy na řádek) jediným file uploadem. Zpracování zpráv pak probíhá na straně SmsManager.
Endpoint
/messaging/url patří do REST API, nikoli do JSON API v2. Základní URL je https://rest-api.smsmngr.com/v1, autentizace je stejná — hlavička x-api-key se stejným API klíčem.1
Připravte JSONL soubor
Každý řádek souboru je jeden objekt zprávy ve stejném formátu jako u JSON API v2 — tedy stejný objekt, jaký posíláte na Na každém řádku můžete použít všechna pole objektu zprávy —
POST /message nebo jako prvek pole na POST /messages. Používejte kódování UTF-8, jeden JSON objekt na řádek, bez obalujícího pole a bez čárek mezi řádky.messages.jsonl
to s až 10 příjemci, flow se smíšenými kanály, tag, callback, payload, datetime i delivery_time. Pro velké soubory doporučujeme gzip kompresi:gzip
2
Získejte URL pro nahrání
Zavolejte
POST /messaging/url s vlastním identifikátorem dávky a typem souboru.cURL
Odpověď
3
Nahrajte soubor
Na vrácenou URL odešlete soubor metodou
PUT. Hlavička Content-Type musí odpovídat zvolenému filetype: application/jsonl pro jsonl, application/gzip pro gz.cURL (JSONL)
cURL (gzip)
4
Sledujte doručení přes webhooky
Nahraný soubor se zpracovává asynchronně — úspěšný
PUT znamená pouze, že soubor byl přijat. Výsledek každé zprávy (přijetí, odeslání, doručení nebo odmítnutí) dostanete jako sentMessage webhook na callback uvedený u zprávy, případně na výchozí callback URL vašeho účtu. Žádný samostatný endpoint pro stav celé dávky neexistuje.Každý příjemce má vlastní message_id; u řádků s více příjemci se message_id odvozuje stejně jako u /messages — příponou indexu -0, -1 atd. Podrobnosti najdete v průvodci Webhooky a v konceptu Přijetí požadavku.Plánování a zrušení
Poledatetime v těle POST /messaging/url naplánuje zpracování celého souboru na zadaný čas v UTC. Platí stejná pravidla jako pro plánování jednotlivých zpráv.
cURL
POST /messaging/cancel s jeho bulk_id:
cURL
Pole
datetime uvnitř jednotlivých řádků souboru se vztahuje k dané zprávě a uplatní se při jejím zpracování. Zpracování souboru samotného řídí jen datetime z požadavku na URL.Chyby
Chyby při samotném
PUT (například vypršelá URL nebo neodpovídající Content-Type) vrací úložiště přímo jako HTTP chybu bez těla ve formátu SmsManager. V takovém případě si vyžádejte novou URL a nahrání zopakujte.
Další kroky
Webhooky
Přijímejte stav doručení pro každého příjemce ve vaší dávce přes webhooky.
REST API reference
Referenční popis endpointů
/messaging/url a /messaging/cancel pro hromadné nahrání souborů.Plánování
Naplánujte odeslání pomocí
datetime a omezte doručení na povolené hodiny přes delivery_time.Odeslat Viber
Zjistěte, jak nakonfigurovat Viber flow pro použití v dávkových požadavcích.
Odeslat WhatsApp
Přidejte WhatsApp šablonové zprávy do svých dávek se smíšenými kanály.
Odeslat SMS
Zkontrolujte všechny možnosti SMS flow dostupné v dávkových zprávách.