Przeanalizuj dokładną treść wiadomości
Oblicz kodowanie, długość po zakodowaniu i liczbę segmentów SMS dla tekstu, który zamierzasz wysłać. Ten punkt końcowy nie wysyła SMS-a, nie rezerwuje trasy ani nie zwraca wyceny doręczenia. Prześlij pełną, ostateczną treść, wraz ze stopką, linkiem lub informacją o rezygnacji z otrzymywania wiadomości, które dodaje Twój proces wysyłki.
Żądanie
Uwierzytelnij się przy użyciu aktywnego konta API i dozwolonego dla niego źródłowego adresu IP. Przechowuj dane uwierzytelniające w magazynie sekretów po stronie serwera. Wyślij ciąg znaków w kodowaniu UTF-8 w polu text; w przykładzie użyto zmiennych środowiskowych.
curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
--data-urlencode 'text=Your message here' \
https://api.multitel.net/v3/smslengthObsługiwane są dane wejściowe zakodowane jako formularz. Obiekt JSON, taki jak {"text":"Your message here"} jest również akceptowany, jeśli nie podano żadnych pól formularza ani parametrów zapytania. Preferuj metodę POST, aby treść wiadomości nie pojawiała się w adresie URL. Jeśli przesłano zarówno dane formularza, jak i parametry zapytania, używany jest formularz. Nie mieszaj formatów żądań.
Odpowiedź
{
"status": {
"code": "200",
"msg": ""
},
"response": {
"charset": 0,
"encoding": "GSM-7",
"count": 1,
"parts": 1,
"chars": 17,
"units": 17,
"single_limit": 160,
"multipart_limit": 153
}
}| Pole | Znaczenie |
|---|---|
| charset | 0 dla GSM-7 lub 2 dla UTF-16. |
| encoding | GSM-7 lub UTF-16. |
| parts, count | Dwie nazwy obliczonej liczby segmentów SMS. Oba pola mają wartość zero dla pustego tekstu. |
| units, chars | Dwie nazwy jednostek zakodowanego tekstu. Ich liczba nie musi być równa liczbie widocznych znaków. |
| single_limit | Limit jednostek zakodowanego tekstu dla pojedynczego segmentu przy wybranym kodowaniu. |
| multipart_limit | Limit jednostek zakodowanego tekstu stosowany dla każdego segmentu po uwzględnieniu narzutu na łączenie segmentów. |
Kodowanie i limity segmentów
| Kodowanie | Pojedynczy segment | Segment wiadomości wieloczęściowej |
|---|---|---|
| GSM-7 | 160 septetów | 153 septety |
| UTF-16 | 70 jednostek kodowych | 67 jednostek kodowych |
Znaki z zestawu rozszerzonego GSM-7, takie jak ^, nawiasy klamrowe, nawiasy kwadratowe, ukośnik odwrotny, pionowa kreska, tylda i symbol euro, zajmują dwa septety. Znak spoza GSM-7 powoduje zliczanie całej wiadomości według kodowania UTF-16. Emoji spoza podstawowej płaszczyzny wielojęzycznej zajmuje dwie jednostki UTF-16; widoczna sekwencja emoji może zawierać kilka punktów kodowych.
Na przykład 160 zwykłych liter z zestawu GSM-7 mieści się w jednym segmencie, a 161 wymaga dwóch. Osiemdziesiąt znaków ^ zajmuje 160 jednostek i mieści się w jednym segmencie; osiemdziesiąt jeden zajmuje 162 jednostki i wymaga dwóch. Trzydzieści pięć prostych emoji spoza BMP zajmuje 70 jednostek UTF-16 i mieści się w jednym segmencie; trzydzieści sześć zajmuje 72 jednostki i wymaga dwóch. Znaki łączące i łączone emoji mogą zmienić te liczby.
Błędy i pusty tekst
Brak pola text, tablica lub obiekt zamiast wartości skalarnej bądź nieprawidłowe kodowanie UTF-8 powodują zwrócenie kodu API 403. Odczytuj z odpowiedzi JSON pola status.code i status.msg, a także status HTTP; ten punkt końcowy zwraca kod jako ciąg znaków. Pusty ciąg znaków jest prawidłową wartością i powoduje zwrócenie zera jednostek oraz zera segmentów.
Wykorzystaj wynik przed wysłaniem
Zweryfikowany kalkulator nie wysyła wiadomości, nie wykonuje wywołań do operatora ani nie obciąża konta. Jego wynik jest analizą przesłanego tekstu, a nie gwarancją doręczenia ani końcowym rachunkiem. Wysyłka może podlegać stawkom zależnym od miejsca docelowego, opłatom operatora, wymaganiom kampanii i dodatkowym przekształceniom tekstu. Po zmianie wiadomości wykonaj obliczenia ponownie, a następnie skorzystaj z zatwierdzonego procesu wysyłki i aktualnego cennika konta.