Аналізуйте точний текст повідомлення
Розрахуйте кодування, довжину закодованого тексту та кількість сегментів SMS для тексту, який плануєте надіслати. Ця кінцева точка не надсилає SMS, не резервує маршрут і не повертає розрахунок вартості доставки. Передайте повний остаточний текст, зокрема будь-який підпис, посилання чи текст для відмови від розсилки, які додає ваш процес надсилання.
Запит
Пройдіть автентифікацію за допомогою свого активованого облікового запису API та дозволеної для нього IP-адреси джерела запиту. Зберігайте облікові дані в серверному сховищі секретів. Передайте рядок у кодуванні UTF-8 у полі text; у прикладі використано змінні середовища.
curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
--data-urlencode 'text=Your message here' \
https://api.multitel.net/v3/smslengthПідтримуються вхідні дані, закодовані у форматі форми. Об’єкт JSON, наприклад {"text":"Your message here"} також приймається, якщо не передано жодних полів форми чи параметрів запиту. Надавайте перевагу POST, щоб текст повідомлення не з’являвся в URL. Якщо одночасно передано дані форми та параметри запиту, використовуються дані форми. Не змішуйте формати запитів.
Відповідь
{
"status": {
"code": "200",
"msg": ""
},
"response": {
"charset": 0,
"encoding": "GSM-7",
"count": 1,
"parts": 1,
"chars": 17,
"units": 17,
"single_limit": 160,
"multipart_limit": 153
}
}| Поле | Значення |
|---|---|
| charset | 0 для GSM-7 або 2 для UTF-16. |
| encoding | GSM-7 або UTF-16. |
| parts, count | Дві назви для розрахованої кількості сегментів SMS. Для порожнього тексту обидва значення дорівнюють нулю. |
| units, chars | Дві назви для кількості одиниць кодування. Вона не обов’язково дорівнює кількості видимих символів. |
| single_limit | Гранична кількість одиниць кодування для одного сегмента за вибраного кодування. |
| multipart_limit | Гранична кількість одиниць кодування для кожного сегмента з урахуванням місця, зайнятого службовими даними для об’єднання сегментів. |
Кодування та обмеження сегментів
| Кодування | Один сегмент | Сегмент багатосегментного повідомлення |
|---|---|---|
| GSM-7 | 160 септетів | 153 септети |
| UTF-16 | 70 кодових одиниць | 67 кодових одиниць |
Символи розширення GSM-7, як-от ^, фігурні дужки, квадратні дужки, зворотна скісна риска, вертикальна риска, тильда та знак євро, займають два септети. Символ, який не входить до GSM-7, переводить підрахунок усього повідомлення на UTF-16. Емодзі поза основною багатомовною площиною займає дві одиниці UTF-16; видима послідовність емодзі може містити кілька кодових точок.
Наприклад, 160 звичайних літер GSM-7 уміщуються в одному сегменті, а 161 потребує двох. Вісімдесят символів ^ займають 160 одиниць і вміщуються в одному сегменті; вісімдесят один займає 162 одиниці та потребує двох сегментів. Тридцять п’ять простих емодзі поза основною багатомовною площиною займають 70 одиниць UTF-16 і вміщуються в одному сегменті; тридцять шість займають 72 одиниці та потребують двох сегментів. Комбінувальні знаки та з’єднані емодзі можуть змінювати ці значення.
Помилки та порожній текст
Якщо поле text відсутнє, замість скалярного значення передано масив чи об’єкт або кодування UTF-8 некоректне, повертається код API 403. Зчитуйте з JSON поля status.code і status.msg, а також статус HTTP; ця кінцева точка повертає код як рядок. Порожній рядок є допустимим і повертає нуль одиниць та нуль сегментів.
Використовуйте результат перед надсиланням
Перевірений калькулятор не надсилає повідомлень, не виконує викликів до оператора та не списує коштів з рахунку. Його результат — це аналіз переданого тексту, а не гарантія доставки чи остаточний рахунок. Під час надсилання можуть застосовуватися тарифи за напрямком доставки, збори оператора, вимоги до кампанії та додаткові перетворення тексту. Після зміни повідомлення повторіть розрахунок, а потім використовуйте затверджений процес надсилання та поточні тарифи свого облікового запису.