Développeurs

POST/v3/smslength

Calculer l’encodage et le nombre de segments SMS

Analysez le texte final du message sans l’envoyer ni estimer les frais de livraison.

Sur cette page
  1. Analyser le texte exact du message
  2. Requête
  3. Réponse
  4. Encodage et limites des segments
  5. Erreurs et texte vide
  6. Utiliser le résultat avant l’envoi

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/smslength

Les 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
  }
}
Champs du résultat du calculateur
ChampSignification
charset0 pour GSM-7 ou 2 pour UTF-16.
encodingGSM-7 ou UTF-16.
parts, countDeux noms pour le nombre calculé de segments SMS. Les deux valent zéro lorsque le texte est vide.
units, charsDeux noms pour les unités encodées. Leur nombre ne correspond pas nécessairement à celui des caractères visibles.
single_limitLimite d’unités encodées pour un segment unique avec l’encodage sélectionné.
multipart_limitLimite 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

Limites utilisées par le calculateur
EncodageSegment uniqueSegment d’un message multisegment
GSM-7160 septets153 septets
UTF-1670 unités de code67 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.