Анализирайте точния текст на съобщението
Изчислете кодирането, дължината след кодиране и броя 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 статуса; тази крайна точка връща кода като низ. Празният низ е валиден и връща нула единици и нула сегменти.
Използвайте резултата преди изпращане
Провереният калкулатор не извършва изпращане на съобщения, повиквания към оператор или дебитиране на акаунта. Резултатът му е анализ на подадения текст, а не гаранция за доставка или окончателна сметка. При изпращане може да се прилагат тарифи според дестинацията, такси на операторите, изисквания за кампании и допълнителни преобразувания на текста. Изчислете отново след промяна на съобщението, след което използвайте одобрения процес на изпращане и текущите цени за акаунта.