Compatibilité des API GMS
SMSBAT prend en charge une couche de compatibilité avec l'API GMS. Cela vous permet de migrer vos intégrations existantes conçues pour GMS directement vers SMSBAT sans avoir à modifier vos schémas de routage de messages, vos structures de charge utile ou vos écouteurs de rappel.
Paramètres de connexion
Pour acheminer les requêtes via SMSBAT, mettez à jour l'URL de base et les informations d'authentification dans votre intégration :
- URL de base :
https://restapi.smsbat.com - Point de terminaison :
POST /api/GMSMessage/send_message - Format de la demande :
application/json - Authentification : Authentification HTTP de base (utilise vos informations d'identification API SMSBAT)
Paramètres de la requête
L'API de compatibilité GMS accepte un objet JSON avec les paramètres de niveau supérieur suivants :
| Paramètre | Tapez | Obligatoire | Descriptif |
|---|---|---|---|
numéro_téléphone |
chaîne | Oui | Numéro de téléphone du destinataire au format international (par exemple, « 380501234567 »). |
balise |
chaîne | Oui | Nom de l'expéditeur enregistré / nom alpha. |
canaux |
tableau | Oui | Liste des chaînes à essayer, par ordre de priorité. Valeurs prises en charge : viber, sms, push. Par exemple, ["viber", "sms"]. |
channel_options |
objet | Oui | Carte contenant les options pour chaque canal actif (voir ci-dessous). |
id_extra |
chaîne | Non | Votre identifiant de message interne côté client. |
callback_url |
chaîne | Non | URL du point de terminaison sur votre système pour recevoir des rappels d’état de livraison. |
code_division |
chaîne | Non | Identificateur de code de division facultatif (par défaut : « principal »). |
Paramètres des options de chaîne
L'objet channel_options contient des configurations spécifiques au canal.
Utilisé lorsque « viber » est répertorié dans le tableau « canaux ».
| Paramètre | Tapez | Obligatoire | Descriptif |
|---|---|---|---|
texte |
chaîne | Oui | Texte du corps du message. |
ttl |
entier | Oui | Durée de vie en secondes. |
img |
chaîne | Non | URL HTTPS publique de l'image à afficher. |
légende |
chaîne | Non | Étiquette de texte du bouton. |
| 'action' | chaîne | Non | URL de destination lorsque le bouton est cliqué. |
survey_options |
tableau | Non | Tableau de chaînes (2 à 5 éléments) à afficher comme options d'enquête. |
carrousel_items |
tableau | Non | Tableau d'objets slide à afficher sous forme de carrousel Viber (voir structure dans l'onglet). |
Exemple de demande Viber :
Active la messagerie Viber avec un repli automatique des SMS si la livraison Viber échoue dans la durée de vie.
Exemple de demande de secours :
{
"phone_number": "380501234567",
"tag": "MySender",
"channels": ["viber", "sms"],
"channel_options": {
"viber": {
"text": "Your order is ready!",
"ttl": 60,
"caption": "Details",
"action": "https://www.example.com/order"
},
"sms": {
"text": "Your order is ready: https://www.example.com/order",
"alpha_name": "MySender",
"ttl": 60,
"ctr": false
}
}
}
Utilisé lorsque « sms » est répertorié dans le tableau « canaux ».
| Paramètre | Tapez | Obligatoire | Descriptif |
|---|---|---|---|
texte |
chaîne | Oui | Texte du corps du message. |
nom_alpha |
chaîne | Oui | Nom alphabétique de l'expéditeur. |
ttl |
entier | Oui | Durée de vie en secondes. |
ctr |
booléen | Non | Activez le suivi des clics CTR sur les liens dans le texte (true/false). |
Exemple de demande SMS :
Utilisé pour créer des sondages et des enquêtes Viber.
Avertissement
La configuration de l'enquête Viber doit avoir entre 2 et 5 options dans survey_options.
Exemple de demande d'enquête :
Utilisé pour envoyer des cartes de diapositives d'images glissantes. Chaque diapositive prend en charge l'image, le titre et les boutons.
Exemple de demande de carrousel :
{
"phone_number": "380501234567",
"tag": "MySender",
"channels": ["viber"],
"channel_options": {
"viber": {
"text": "Choose an offer",
"ttl": 60,
"carousel_items": [
{
"title": "Offer 1",
"image_url": "https://www.example.com/offer-1.png",
"primary_label": "Open",
"primary_url": "https://www.example.com/offer-1",
"secondary_label": "More",
"secondary_url": "https://www.example.com/offers"
},
{
"title": "Offer 2",
"image_url": "https://www.example.com/offer-2.png",
"primary_label": "Open",
"primary_url": "https://www.example.com/offer-2"
}
]
}
}
}
Utilisé lorsque « push » est répertorié dans le tableau « channels ».
| Paramètre | Tapez | Obligatoire | Descriptif |
|---|---|---|---|
titre |
chaîne | Oui | Texte du titre de la notification push. |
texte |
chaîne | Oui | Texte du corps du message. |
ttl |
entier | Oui | Durée de vie en secondes. |
img |
chaîne | Non | URL HTTPS publique de l'image à afficher. |
légende |
chaîne | Non | Étiquette de texte du bouton. |
| 'action' | chaîne | Non | URL de destination lorsque le bouton est cliqué. |
ctr |
booléen | Non | Activez le suivi des clics. |
Exemple de demande push :
{
"phone_number": "380501234567",
"tag": "MySender",
"channels": ["push"],
"channel_options": {
"push": {
"title": "Order update",
"text": "Your order is ready for pickup!",
"ttl": 60,
"img": "https://www.example.com/push.png",
"caption": "Open",
"action": "https://www.example.com/order",
"ctr": false
}
}
}
Format de réponse
Le point de terminaison renvoie des réponses au format JSON avec un code d'état « HTTP 200 OK ».
Réponse réussie
Réponses aux erreurs
Si la validation ou le traitement échoue, une réponse d'erreur avec un « ErrorCode » non nul et un « ErrorText » détaillé sera renvoyée.
Format de livraison du rappel
Si « callback_url » a été spécifié dans la demande, SMSBAT envoie des mises à jour de l'état de livraison sous forme de charge utile JSON POST à votre point de terminaison.
Exemple de demande de rappel
POST /your-callback-endpoint HTTP/1.1
Host: yoursystem.com
Content-Type: application/json
{
"number": "380501234567",
"time": 1719237600000,
"status": 2,
"substatus": 23,
"hyber_status": 23033,
"message_id": "6f0d5e28-7f3a-4df3-91a2-3d58d9e09b9a",
"extra_id": "ORDER-12345",
"sent_via": "viber",
"matching_template_id": 0
}
Champs de rappel Description
| Champ | Tapez | Descriptif |
|---|---|---|
numéro |
chaîne | Numéro de téléphone du destinataire. |
temps |
numéro | Horodatage de l’événement en millisecondes Unix. |
statut |
numéro | Identifiant de statut simplifié (voir tableau des codes de statut). |
sous-statut |
numéro | Identifiant de statut détaillé (voir tableau des codes de sous-statut). |
hyber_statut |
numéro | Code d'état interne SMSBAT détaillé (voir tableau Hyber Status). |
message_id |
chaîne | ID de message SMSBAT (GUID) généré lors de l'envoi. |
id_extra |
chaîne | ID côté client fourni dans la demande d’origine. |
envoyé_via |
chaîne | Canal qui a traité le message : viber, sms ou rcs. |
matching_template_id |
numéro | Statut de correspondance du modèle Viber (le cas échéant). |
Mappages de statut
1. Statut simplifié (« statut »)
| Codes | Signification |
|---|---|
| '1' | Message accepté ou en cours de livraison. |
| '2' | Message délivré. |
| '3' | Erreur de traitement ou de livraison. |
2. Statut détaillé (« sous-statut »)
| Codes | Signification |
|---|---|
| '12' | Accepté pour traitement. |
| '23' | Livré. |
| '24' | Vu/lu. |
| '35' | Non livré dans le délai TTL (expiré). |
| '36' | Erreur de livraison. |
3. Type de canal (sent_via)
| Chaîne | Descriptif |
|---|---|
vibreur |
Statut produit par la chaîne Viber. |
sms |
Statut produit par canal SMS. |
rcs |
Statut produit par la chaîne RCS. |
4. Statut détaillé de SMSBAT (hyber_status)
| Codes | Chaîne | Statut | Sous-statut | Signification |
|---|---|---|---|---|
| 23033 | vibreur |
'2' | '23' | Message Viber envoyé. |
| 24013 | vibreur |
'2' | '24' | Message Viber lu par le destinataire (Vu). |
| 36013 | vibreur |
'3' | '36' | Erreur interne Viber. |
| 36023 | vibreur |
'3' | '36' | ID de service Viber invalide ou indisponible. |
| 36033 | vibreur |
'3' | '36' | Données de charge utile Viber invalides. |
| 36037 | vibreur |
'3' | '36' | URL de l'image Viber trop longue. |
| 36038 | vibreur |
'3' | '36' | URL de l'image Viber invalide. |
| 36039 | vibreur |
'3' | '36' | Texte Viber trop long. |
| 36044 | vibreur |
'3' | '36' | Texte Viber vide. |
| 36053 | vibreur |
'3' | '36' | Type de message Viber non pris en charge. |
| 36063 | vibreur |
'3' | '36' | Paramètres Viber invalides. |
| 36073 | vibreur |
'3' | '36' | Expiration du délai du fournisseur Viber. |
| 36083 | vibreur |
'3' | '36' | Expéditeur Viber bloqué par le destinataire. |
| 36093 | vibreur |
'3' | '36' | Le destinataire n'est pas enregistré en tant qu'utilisateur Viber. |
| 36103 | vibreur |
'3' | '36' | Aucun appareil Android/iOS prenant en charge Viber trouvé. |
| 36113 | vibreur |
'3' | '36' | Adresse IP non autorisée pour l'envoi Viber. |
| 36123 | vibreur |
'3' | '36' | Message Viber en double détecté. |
| 36143 | vibreur |
'3' | '36' | Erreur de facturation Viber. |
| 36153 | vibreur |
'3' | '36' | Message bloqué par la liste noire de la plateforme. |
| 36163 | vibreur |
'3' | '36' | Erreur de traitement interne de la plateforme Viber. |
| 36173 | vibreur |
'3' | '36' | Étiquette Viber erronée ou manquante. |
| 36183 | vibreur |
'3' | '36' | Valeur TTL Viber invalide. |
| 12011 | sms / rcs |
'1' | '12' | SMS/RCS acceptés. |
| 36011 | sms / rcs |
'1' | '12' | SMS/RCS en route. |
| 23011 | sms / rcs |
'2' | '23' | SMS/RCS délivrés. |
| 35015 | sms / rcs |
'3' | '35' | SMS/RCS expiré (non livré dans le délai TTL). |
| 36021 | sms / rcs |
'3' | '36' | Message SMS/RCS supprimé. |
| 36031 | sms / rcs |
'3' | '36' | Les SMS/RCS ne peuvent pas être délivrés. |
| 36041 | sms / rcs |
'3' | '36' | Statut de livraison SMS/RCS inconnu. |
| 36051 | sms / rcs |
'3' | '36' | Message SMS/RCS rejeté. |