Envoi d'OTP

Cette API génère des codes de vérification via la plateforme EngageLab et les distribue selon la stratégie de canal spécifiée dans le modèle.

Si vous souhaitez générer vous-même les codes de vérification au lieu d'utiliser la plateforme EngageLab, vous pouvez appeler l'API EngageLab OTP Custom Verification Code Delivery.

Point de terminaison

POST https://otp.api.engagelab.cc/v1/messages

Authentification

Utilisez l'authentification HTTP Basic et ajoutez Authorization à l'en-tête HTTP :

Authorization: Basic ${base64_auth_string}
              
              Authorization: Basic ${base64_auth_string}

            
Afficher ce bloc de code dans la fenêtre flottante

L'algorithme de génération de base64_auth_string est le suivant : base64(dev_key:dev_secret)

Exemple de requête

En-tête de requête

POST /v1/messages HTTP/1.1 Content-Type: application/json Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
              
              POST /v1/messages HTTP/1.1
Content-Type: application/json
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0

            
Afficher ce bloc de code dans la fenêtre flottante

Corps de requête

{ "to": "+6591234567", "template": { "id": "test-template-1", "language": "default", "params": { "key1": "value1", "key2": "value2" } } }
              
              {
  "to": "+6591234567",
  "template": {
    "id": "test-template-1",
    "language": "default",
    "params": {
      "key1": "value1",
      "key2": "value2"
    }
  }
}

            
Afficher ce bloc de code dans la fenêtre flottante

Paramètres de requête

Un objet de requête est exprimé au format JSON ; l'en-tête de requête doit donc inclure Content-Type: application/json.

Parameter Type Required Description
to String Required Destinataire cible : numéro de téléphone ou adresse e-mail, par exemple +6598765432 ou support@engagelab.com
template JSON Object Required Informations du modèle. Voir les paramètres imbriqués ci-dessous.
|_ id String Required ID du modèle
|_ language String Optional Langue du modèle. Les langues suivantes sont prises en charge :
default : langue par défaut
zh_CN : chinois simplifié
zh_HK : chinois traditionnel
en : anglais
ja : japonais
th : thaï
es : espagnol
Si elle n'est pas fournie, la valeur par défaut est default (la langue par défaut).
|_ params JSON Object Optional Valeurs des clés des variables personnalisées du modèle. Si vous avez défini des variables personnalisées lors de la création du modèle, attribuez-leur des valeurs ici. Si ce champ n'est pas fourni, la clé de variable sera transmise telle quelle, par exemple {{var}}.

Remarques sur params

  1. Pour les champs prédéfinis dans le modèle, tels que from_id, si la valeur du champ param_vars n'est pas fournie, le from_id prédéfini du modèle sera utilisé lors de l'envoi du message.
  2. Si la valeur du champ param_vars est fournie, par exemple param_vars:{"from_id":"12345"}, alors le from_id du modèle sera remplacé par 12345 lors de l'envoi du message.
  3. Par ailleurs, les champs de variables personnalisées dans le contenu du modèle créé lors de sa création sont également affectés via param_vars. Par exemple, si le contenu du modèle est Hi {{name}}, your verify code is {{code}}, alors le paramètre d'affectation param_vars:{"name":"Bob"} est requis.

Paramètres de réponse

Réponse réussie

Field Type Required Description
message_id String Required ID du message, qui identifie de manière unique un message
send_channel String Required Indique le canal de distribution actuel. Les valeurs possibles sont whatsapp, sms, email ou voice.
{ "message_id": "1725407449772531712", "send_channel": "sms" }
              
              {
  "message_id": "1725407449772531712",
  "send_channel": "sms"
}

            
Afficher ce bloc de code dans la fenêtre flottante

Notez que la valeur send_channel renvoyée ne représente pas le canal final utilisé pour transmettre le message à l'utilisateur. Elle indique uniquement le canal actuellement utilisé. Par exemple, si la stratégie du modèle est configurée de sorte que l'envoi via le canal WhatsApp échoue puis soit automatiquement retenté via le canal SMS, la réponse de l'API renverra la valeur whatsapp. Après un certain temps, une fois l'échec de distribution détecté, le système enverra le message via le canal SMS.

Réponse d'échec

Le code de statut HTTP est 4xx ou 5xx, et le corps de la réponse contient les champs suivants :

Field Type Required Description
code int Required Code d'erreur. Pour plus de détails, voir Codes d'erreur
message String Required Détails de l'erreur
{ "code": 5001, "message": "sms send fail" }
              
              {
  "code": 5001,
  "message": "sms send fail"
}

            
Afficher ce bloc de code dans la fenêtre flottante

Codes d'erreur

Error Code HTTP Code Description
1000 500 Erreur interne
2001 401 Échec de l'authentification ; le jeton correct n'a pas été fourni
2002 401 Échec de l'authentification ; le jeton a expiré ou a été désactivé
2004 403 Aucune autorisation pour appeler cette API
3001 400 Format de paramètre de requête invalide. Veuillez vérifier si le contenu JSON correspond au format de paramètre requis
3002 400 Paramètres de requête invalides. Veuillez vérifier si les paramètres de requête respectent les exigences
3003 400 Paramètres de requête invalides. La validation métier associée a échoué. Reportez-vous à la description de l'erreur dans le champ message pour plus de détails
3004 400 Limite de fréquence dépassée. Pour le même modèle et le même utilisateur cible, l'envoi ne peut pas être effectué à nouveau pendant la période de validité du code de vérification
4001 400 La ressource associée n'existe pas. Par exemple, un modèle inexistant est utilisé lors de l'envoi d'un message modèle
5001 400 Échec de l'envoi (général/autre)
5011 400 Format du numéro de téléphone invalide
5012 400 Cible inaccessible
5013 400 Le numéro a été ajouté à la liste noire
5014 400 Le contenu n'est pas conforme aux spécifications
5015 400 Message intercepté/rejeté
5016 400 Erreur interne d'envoi
5017 400 Aucune autorisation pour envoyer vers la Chine continentale
5018 400 Problème lié au téléphone (éteint/service suspendu)
5019 400 L'utilisateur s'est désabonné
5020 400 Numéro non enregistré/numéro invalide
Icon Solid Transparent White Qiyu
Contactez-nous