Sign inGet Started

Szablony SMS

Szablon to wiadomość wielokrotnego użytku wysyłana przez referencję, z wartościami takimi jak jednorazowy kod weryfikacyjny czy numer zamówienia. Wbudowane szablony systemowe Bird obejmują wiadomości uwierzytelniające i transakcyjne. Tworzenie szablonów w obszarze roboczym jest w wersji API preview; dashboard nadal wyświetla wbudowany katalog.
Szablon dostarcza kategorię wiadomości używaną do sprawdzania zgodności z wymaganiami kraju docelowego. Szablony wbudowane wybierają też nadawcę dla danego miejsca docelowego, więc pomijasz from. Szablony obszaru roboczego wymagają własnego nadawcy, tak jak wysyłka wolnym tekstem.

Przeglądanie szablonów w dashboardzie

Strona Templates w sekcji SMS wyświetla wbudowane szablony. Wyszukuj po nazwie lub filtruj po statusie i kategorii.
Zakładka Templates SMS: pole wyszukiwania z filtrami Status i Category nad tabelą szablonów, gdzie każdy wiersz pokazuje nazwę, status Active, kategorię, chip języka EN i zakres System, w kolumnach Name, Status, Category, Language, Scope i Updated.
Każdy wiersz pokazuje pola potrzebne do wybrania i wysłania szablonu:
  • Name: nazwa wyświetlana szablonu i jego slug (na przykład bird_order_confirmation). Slug to identyfikator, który przekazujesz przy wysyłce; jest ustalany przy tworzeniu.
  • Status: szablony wbudowane mają status Active i są gotowe do wysyłki. Szablony obszaru roboczego mają status Draft do momentu publikacji, potem Active. Traktuj wspólne pole statusu jako zbiór otwarty.
  • Category: klasyfikacja treści (transactional, marketing lub authentication) stosowana do wiadomości wysyłanych z danego szablonu.
  • Language: języki, w których szablon jest dostępny, jako tagi BCP 47. Pierwsze kilka wyświetla się jako chipy z przepełnieniem +N, gdy szablon jest zlokalizowany na wiele języków.
  • Scope: System dla szablonów wbudowanych Bird. Workspace oznacza szablony tworzone przez Ciebie w wersji API preview.
  • Updated: data ostatniej zmiany szablonu. Wbudowane szablony nie pokazują daty.

Co zawiera szablon

Oprócz nazwy, kategorii i języków każdy szablon definiuje zmienne wypełniane w momencie wysyłki. Zmienna ma key, type, flagę required oraz czytelny dla człowieka constraint. Szablony wbudowane mają sloty z typami; szablony obszaru roboczego wywodzą generyczne sloty text i przyjmują skalarne wartości parametrów. Zmienna sensitive jest zastępowana w przechowywanej treści wiadomości. Kolejki transportowe nadal zawierają tekst potrzebny do dostarczenia. Podawaj każdą wymaganą zmienną i żadnych niezadeklarowanych kluczy.
Szablon jest przygotowany w jednym lub wielu językach, a jego default_language to język, który otrzymuje wysyłka, gdy nie wskaże żadnego. Jeśli poprosisz o język, w którym szablon nie jest przygotowany, Bird stosuje rezerwę: najpierw szersza forma tego samego języka, potem język domyślny, ponieważ szablony SMS domyślnie ustawiają on_missing_language na fallback. Szablony wbudowane używają language_source_required: false. Szablony obszaru roboczego mogą wymagać języka lub ustawić on_missing_language: fail; te polityki obowiązują natychmiast, natomiast zmiany treści i języka domyślnego wchodzą w życie po publikacji.

Pobieranie listy szablonów z API

GET /v1/sms/templates zwraca stronę podsumowań szablonów z paginacją kursorową. Podążaj za next_cursor, używając starting_after, aż będzie null; jedna strona to nie cały katalog. Odczyt szablonów wymaga klucza API z uprawnieniem sms_management, które jest odrębne od uprawnienia sms używanego przy wysyłce. Filtruj po scope, category, status lub language, albo wyszukuj za pomocą q:
for await (const tpl of bird.smsTemplates.list({ scope: "system" })) {
  console.log(tpl.id, tpl.slug);
}
Podsumowania szablonów zawierają tożsamość, kategorię, status, dostępne języki i referencje do wersji roboczej/opublikowanej. Nie zawierają tekstu źródłowego ani zmiennych. Pobierz szablon po slugu lub ID za pomocą GET /v1/sms/templates/{template_ref}. Użyj draft_version_id, aby sprawdzić edytowalną treść obszaru roboczego, lub live_version_id, aby sprawdzić treść używaną przy wysyłce. Nowy szablon obszaru roboczego nie ma wersji opublikowanej do czasu publikacji.
Odczytaj wybraną wersję przez GET /v1/sms/templates/{template_ref}/versions/{version_id}. Odpowiedź zawiera zmienne i mapę treści indeksowaną językami. Aby pobrać jeden język, dołącz /languages/{language}. Filtr language na liście dopasowuje opublikowaną treść; języki dostępne tylko w wersji roboczej nie pasują.
Szablony wbudowane udostępniają jedną wersję tylko do odczytu. Jej stabilne ID identyfikuje wpis w katalogu, a hash treści odróżnia aktualizacje źródła. Opublikowane wersje obszaru roboczego zachowują niezmienną historię. Listy wersji również korzystają z paginacji kursorowej i pomijają tekst źródłowy.

Tworzenie szablonów w obszarze roboczym w wersji API preview

Użyj klucza API z dostępem do zapisu sms_management. Wysyłaj żądania JSON na regionalny host API Twojego klucza, z Authorization: Bearer <API_KEY> i Content-Type: application/json. Nadaj każdej mutacji własny Idempotency-Key; używaj tego klucza ponownie tylko przy ponawianiu tego samego żądania.
  1. Utwórz szablon za pomocą POST /v1/sms/templates i {"slug":"order-shipped","category":"transactional"}. Odpowiedź 201 zawiera id i draft_version_id; szablon zaczyna od pustej wersji roboczej w języku angielskim. Zapisz oba ID do kolejnych wywołań.
  2. Zapisz tekst za pomocą PUT /v1/sms/templates/{id}/versions/{draft_version_id}/languages/en i {"text":"Your order {{ order_number }} has shipped."}. Odpowiedź 200 zawiera draft_revision.
  3. Opublikuj za pomocą POST /v1/sms/templates/{id}/versions/{draft_version_id}/submit, przekazując tę rewizję jako {"expected_revision":1} (zastąp 1 zwróconą wartością). Odpowiedź 200 z valid: true identyfikuje opublikowaną wersję. 422 zgłasza nieprawidłową treść wersji roboczej; popraw zwrócone problemy językowe i wyślij ponownie z nowym kluczem idempotentności.
Publikacja wymaga niepustego tekstu i tych samych zmiennych w każdym języku. Działa synchronicznie, bez zatwierdzenia przez operatora. API obsługuje również podgląd, duplikację, resetowanie wersji roboczej do treści opublikowanej i wycofanie do opublikowanej wersji. Edycja w dashboardzie nie jest dostępna.
Odczytaj bieżącą rewizję przed aktualizacją ustawień szablonu lub wycofaniem. Zapis języka może też zawierać strażnika rewizji; nieaktualny strażnik zwraca 409. Podgląd wykorzystuje wybraną wersję i parametry do raportowania wyrenderowanego tekstu, rozwiązanego języka, kodowania i liczby segmentów przed wysyłką.

Wysyłka z szablonem

Ustaw obiekt template wysyłki zamiast text. Pomiń category i media_urls. Dla poniższego szablonu wbudowanego pomiń też from. Szablon obszaru roboczego wymaga from i musi mieć opublikowaną wersję.
Wbudowany szablon uwierzytelniający wybiera również wspólną markę nadawcy: bird_otp_verification_ttl używa Authifly, a bird_otp_verification_ttl_bird_verify używa Bird Verify. Miejsce docelowe decyduje, czy nadawca pojawia się jako nazwa marki, krótki numer czy numer telefonu.
Wyślij szablon wbudowany:
await bird.sms.send({
  to: "+14155550100",
  template: { slug: "bird_otp_verification", parameters: { code: "123456" } },
});
slug to uchwyt szablonu z katalogu (możesz też zidentyfikować szablon po jego id). language wybiera zlokalizowaną treść; pomiń go, aby użyć domyślnego języka szablonu. parameters dostarcza wartość dla każdej zmiennej szablonu, indeksowaną nazwą zmiennej. Brakująca wymagana zmienna, niezadeklarowany klucz, wartość niezgodna z ograniczeniem zmiennej lub zserializowany obiekt parameters powyżej 16 KB jest odrzucany z 422.
Odpowiedź 202 zawiera wybrany from, kategorię szablonu, ID szablonu i wersji, hash źródła oraz żądane/rozwiązane języki. Tekst wiadomości uwierzytelniającej jest zwracany jako **REDACTED**. Zaakceptowane wiadomości zachowują wyrenderowaną treść i wybraną wersję, nawet jeśli później opublikujesz, wycofasz lub usuniesz szablon.
Wszystko inne dotyczące wysyłki (odbiorca, tagi, metadane, lista dozwolonych miejsc docelowych i asynchroniczny model 202) działa dokładnie tak samo jak przy wysyłce wolnym tekstem.

Następne kroki

Powiązane zasoby

Kontynuuj z dokumentacją, przewodnikami i przykładami dotyczącymi tego tematu. Zasoby są w języku angielskim.

Wypróbuj ćwiczenie i uzyskaj brief wdrożeniowy