Analyser le texte exact du message
Calculez l’encodage, la longueur encodée et le nombre de segments SMS du texte que vous comptez envoyer. Ce point de terminaison n’envoie aucun SMS, ne réserve aucune route et ne fournit aucun devis de livraison. Soumettez le texte final complet, y compris tout pied de page, lien ou mention de désinscription ajouté par votre processus d’envoi.
Requête
Authentifiez-vous avec votre compte API activé et son adresse IP source autorisée. Conservez les identifiants dans un stockage de secrets côté serveur. Envoyez une chaîne UTF-8 dans le champ text ; l’exemple utilise des variables d’environnement.
curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
--data-urlencode 'text=Your message here' \
https://api.multitel.net/v3/smslengthLes données encodées au format formulaire sont prises en charge. Un objet JSON tel que {"text":"Your message here"} est également accepté lorsqu’aucun champ de formulaire ni paramètre de requête n’est fourni. Privilégiez POST pour que le texte du message n’apparaisse pas dans une URL. Si des données de formulaire et des paramètres de requête sont présents simultanément, le formulaire est utilisé. Ne mélangez pas les formats de requête.
Réponse
{
"status": {
"code": "200",
"msg": ""
},
"response": {
"charset": 0,
"encoding": "GSM-7",
"count": 1,
"parts": 1,
"chars": 17,
"units": 17,
"single_limit": 160,
"multipart_limit": 153
}
}| Champ | Signification |
|---|---|
| charset | 0 pour GSM-7 ou 2 pour UTF-16. |
| encoding | GSM-7 ou UTF-16. |
| parts, count | Deux noms pour le nombre calculé de segments SMS. Les deux valent zéro lorsque le texte est vide. |
| units, chars | Deux noms pour les unités encodées. Leur nombre ne correspond pas nécessairement à celui des caractères visibles. |
| single_limit | Limite d’unités encodées pour un segment unique avec l’encodage sélectionné. |
| multipart_limit | Limite d’unités encodées utilisée pour chaque segment après déduction de l’espace nécessaire aux informations de concaténation. |
Encodage et limites des segments
| Encodage | Segment unique | Segment d’un message multisegment |
|---|---|---|
| GSM-7 | 160 septets | 153 septets |
| UTF-16 | 70 unités de code | 67 unités de code |
Les caractères d’extension de GSM-7, tels que ^, les accolades, les crochets, la barre oblique inversée, la barre verticale, le tilde et le symbole euro, consomment deux septets. Un caractère absent de GSM-7 fait basculer le décompte de l’ensemble du message en UTF-16. Un emoji situé hors du plan multilingue de base utilise deux unités UTF-16 ; une séquence d’emoji visible peut contenir plusieurs points de code.
Par exemple, 160 lettres ordinaires de GSM-7 tiennent dans un segment et 161 en nécessitent deux. Quatre-vingts caractères ^ utilisent 160 unités et tiennent dans un segment ; quatre-vingt-un utilisent 162 unités et nécessitent deux segments. Trente-cinq emoji simples hors du plan multilingue de base utilisent 70 unités UTF-16 et tiennent dans un segment ; trente-six utilisent 72 unités et nécessitent deux segments. Les marques combinatoires et les emoji reliés peuvent modifier ces décomptes.
Erreurs et texte vide
L’absence du champ text, un tableau ou un objet à la place d’une valeur scalaire, ou un encodage UTF-8 invalide entraîne le renvoi du code API 403. Consultez les champs JSON status.code et status.msg, ainsi que le statut HTTP ; ce point de terminaison renvoie le code sous forme de chaîne de caractères. Une chaîne vide est valide et renvoie zéro unité et zéro segment.
Utiliser le résultat avant l’envoi
Le calculateur examiné n’effectue aucun envoi de message, aucun appel à un opérateur et aucun débit du compte. Son résultat constitue une analyse du texte soumis, et non une garantie de livraison ou une facture définitive. L’envoi peut être soumis à des tarifs selon la destination, à des frais d’opérateur, à des exigences de campagne et à des transformations supplémentaires du texte. Refaites le calcul après toute modification du message, puis utilisez le processus d’envoi approuvé et la tarification actuelle du compte.