Interface de l'API de modèles
Créer un modèle
Endpoint
POST https://otp.api.engagelab.cc/v1/template-configs
Authentification
Utilisez l’authentification HTTP Basic pour l’authentification, et ajoutez Authorization à l’en-tête HTTP :
Authorization: Basic ${base64_auth_string}
L’algorithme de génération de base64_auth_string ci-dessus est : 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
Corps de requête
{
"template_id": "test-template-1",
"description": "测试模版1",
"send_channel_strategy": "whatsapp|sms",
"brand_name": "品牌名称",
"verify_code_config": {
"verify_code_type": 1,
"verify_code_len": 6,
"verify_code_ttl": 1
},
"whatsapp_config": {
"template_type": 1,
"template_default_config": {
"contain_security": false,
"contain_expire": false
}
},
"sms_config": {
"template_type": 2,
"template_default_config": {
"contain_security": false,
"contain_expire": false
},
"template_custom_config": {
"custom_sub_type": "authentication",
"custom_content": "xxx",
"custom_country_codes": "HK,PH"
}
},
"voice_config": {
"template_type": 1,
"template_default_config": {
"contain_security": false,
"contain_expire": false
}
},
"email_config": {
"template_name": "email模板名称",
"template_custom_configs": [{
"language": "default",
"pre_from_name": "test",
"pre_from_mail": "test@test.com",
"pre_subject": "test",
"template_content": "预设邮件模版内容,必填,自定义变量如{{self}},验证码是{{code}}",
"pre_param_map": {
"self": "这里是self变量预设值"
}
}]
},
"pwa_config": {
"pwa_platform": "xx",
"pwa_code": "xx"
}
}
Paramètres de requête
L’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 | Option | Description |
|---|---|---|---|
| template_id | String | Required | ID de modèle personnalisé, qui doit être unique, limité à 128 caractères |
| description | String | Optional | Description du modèle, limitée à 255 caractères |
| send_channel_strategy | String | Required | Stratégie du modèle. Un seul canal peut être whatsapp, sms, email ou voice. Plusieurs canaux sont séparés par ` |
| brand_name | String | Optional | Identifiant de marque. Dans certains styles de modèles avec signature de marque, il remplace la variable de signature de marque. Sa longueur doit être comprise entre 2 et 10 caractères |
| verify_code_config | Object | Conditionally required | Configuration du code de vérification. Requise lorsque le modèle inclut un type de code de vérification |
| verify_code_config.verify_code_type | Integer | Required | Type de code de vérification, plage [1,7] : 1 - numérique / 2 - lettres minuscules / 4 - lettres majuscules. Les valeurs peuvent être combinées (par exemple, 3 signifie chiffres + lettres minuscules) |
| verify_code_config.verify_code_len | Integer | Required | Longueur du code de vérification, plage [4,10] |
| verify_code_config.verify_code_ttl | Integer | Required | Période de validité du code de vérification en minutes, plage [1,10]. Lorsque la stratégie inclut whatsapp, seules les valeurs 1, 5 ou 10 sont autorisées |
| whatsapp_config | Object | Conditionally required | Configuration de la stratégie WhatsApp. Requise lorsque la stratégie d’envoi inclut whatsapp |
| whatsapp_config.template_type | Integer | Required | Type de modèle WhatsApp. Actuellement, seul le modèle par défaut est pris en charge ; la valeur est donc fixée à 1 |
| whatsapp_config.template_default_config | Object | Conditionally required | Configuration du modèle WhatsApp par défaut. Requise lorsque le type de modèle WhatsApp est le modèle par défaut |
| sms_config | Object | Conditionally required | Configuration de la stratégie SMS. Requise lorsque la stratégie d’envoi inclut sms |
| sms_config.template_type | Integer | Required | Type de modèle SMS : 1 - modèle par défaut / 2 - modèle personnalisé |
| sms_config.template_default_config | Object | Conditionally required | Configuration du modèle SMS par défaut. Requise lorsque le type de modèle SMS est le modèle par défaut |
| sms_config.template_custom_config | Object | Conditionally required | Configuration du modèle SMS personnalisé. Requise lorsque le type de modèle SMS est un modèle personnalisé |
| sms_config.template_custom_config.custom_sub_type | String | Required | Type de modèle personnalisé : authentication - code de vérification / marketing - marketing / utility - notification |
| sms_config.template_custom_config.custom_content | String | Required | Contenu du modèle personnalisé. Pour le type authentication, il doit inclure la variable {{code}} |
| sms_config.template_custom_config.custom_country_codes | String | Optional | Codes pays/régions cibles, séparés par des virgules, utilisés à titre indicatif lors de la révision du modèle |
| voice_config | Object | Conditionally required | Configuration de la stratégie vocale. Requise lorsque la stratégie d’envoi inclut voice |
| voice_config.template_type | Integer | Required | Type de modèle vocal. Actuellement, seul le modèle par défaut est pris en charge ; la valeur est donc fixée à 1 |
| voice_config.template_default_config | Object | Conditionally required | Configuration du modèle vocal par défaut. Requise lorsque le type de modèle vocal est le modèle par défaut |
| email_config | Object | Conditionally required | Configuration de la stratégie e-mail. Requise lorsque la stratégie d’envoi inclut email |
| email_config.template_name | String | Required | Nom du modèle d’e-mail |
| email_config.template_custom_configs | Array | Conditionally required | Configurations de modèles d’e-mail personnalisés. Requises lorsque le type de modèle d’e-mail est un modèle personnalisé. La configuration multilingue est prise en charge |
| email_config.template_custom_configs.language | String | Required | Langue, où default est la langue par défaut. Un contenu de modèle différent peut être associé selon le paramètre de langue lors de l’envoi du message |
| email_config.template_custom_configs.pre_from_name | String | Optional | Nom d’expéditeur prédéfini |
| email_config.template_custom_configs.pre_from_mail | String | Required | Adresse e-mail d’expéditeur prédéfinie |
| email_config.template_custom_configs.pre_subject | String | Required | Objet d’e-mail prédéfini |
| email_config.template_custom_configs.template_content | String | Required | Contenu de l’e-mail. Le HTML est pris en charge. Les variables doivent être entourées de {{}} |
| email_config.template_custom_configs.pre_param_map | Object | Optional | Valeurs par défaut des variables dans le contenu de l’e-mail, déclarées à l’aide de paires clé-valeur. Les valeurs doivent être des chaînes de caractères |
| pwa_config | Object | Optional | Configuration liée à la PWA. Actuellement facultative |
| pwa_config.pwa_platform | String | Optional | Plateforme PWA utilisée. Veuillez contacter le support technique pour connaître la valeur exacte |
| pwa_config.pwa_code | String | Optional | Code utilisé au sein de la plateforme PWA |
Paramètres de réponse
| Field | Type | Option | Description |
|---|---|---|---|
| code | Integer | Required | Code d’erreur. 0 indique une réussite ; les autres valeurs indiquent un échec |
| message | String | Required | Message de réponse |
Réponse réussie
{
"code": 0,
"message": "success"
}
Réponse en échec
{
"code": 3003,
"message": "not contains any channel config"
}
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 corps de requête est un JSON valide conforme au format des paramètres |
| 3002 | 400 | Paramètres de requête invalides. Veuillez vérifier si les paramètres de requête répondent aux exigences |
| 3003 | 400 | Erreur de paramètre au niveau métier. Veuillez vérifier la description dans le champ message renvoyé |
Supprimer un modèle
Endpoint
DELETE /v1/template-configs/{templateId}
Authentification
Utilisez l’authentification HTTP Basic pour l’authentification, et ajoutez Authorization à l’en-tête HTTP :
Authorization: Basic ${base64_auth_string}
L’algorithme de génération de base64_auth_string ci-dessus est : base64(dev_key:dev_secret)
Exemple de requête
En-tête de requête
DELETE /v1/template-configs/{templateId} HTTP/1.1
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
Corps de requête
Aucun
Paramètres de requête
{templateId} dans l’URL indique l’ID du modèle à supprimer, défini par l’appelant lors de l’utilisation de l’API Create Template.
Paramètres de réponse
| Field | Type | Option | Description |
|---|---|---|---|
| code | Integer | Required | Code d’erreur. 0 indique une réussite ; les autres valeurs indiquent un échec |
| message | String | Required | Message de réponse |
Réponse réussie
{
"code": 0,
"message": "success"
}
Réponse en échec
{
"code": 4001,
"message": "config not exist"
}
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 corps de requête est un JSON valide conforme au format des paramètres |
| 3002 | 400 | Paramètres de requête invalides. Veuillez vérifier si les paramètres de requête répondent aux exigences |
| 4001 | 400 | Le modèle n’existe pas |
Obtenir la liste complète des modèles
Cette API ne prend actuellement pas en charge la pagination. Elle renvoie une liste récapitulative de tous les modèles et exclut principalement le contenu spécifique. Si vous avez besoin du contenu détaillé, veuillez utiliser l’API de détail.
Endpoint
GET /v1/template-configs
Authentification
Utilisez l’authentification HTTP Basic pour l’authentification, et ajoutez Authorization à l’en-tête HTTP :
Authorization: Basic ${base64_auth_string}
L’algorithme de génération de base64_auth_string ci-dessus est : base64(dev_key:dev_secret)
Exemple de requête
En-tête de requête
GET /v1/template-configs HTTP/1.1
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
Corps de requête
Aucun
Paramètres de requête
Aucun
Réponse réussie
[{
"template_id": "test-template-1",
"description": "测试模版1",
"send_channel_strategy": "whatsapp|sms",
"brand_name": "品牌名称",
"verify_code_config": {
"verify_code_type": 1,
"verify_code_len": 6,
"verify_code_ttl": 1
},
"whatsapp_config": {
"template_type": 1
},
"sms_config": {
"template_type": 2,
"template_parts": 1
},
"voice_config": {
"template_type": 1
},
"email_config": {
"template_name": "email模板名称"
},
"pwa_config": {
"pwa_platform": "xx",
"pwa_code": "xx"
},
"created_time": 1234567890,
"status": 1,
"audit_remark": "xx"
}]
Réponse en échec
{
"code": 4001,
"message": "config not exist"
}
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 |
| 4001 | 400 | Le modèle n’existe pas |
Obtenir les détails du modèle
Endpoint
GET /v1/template-configs/{templateId}
Authentification
Utilisez l’authentification HTTP Basic pour l’authentification, et ajoutez Authorization à l’en-tête HTTP :
Authorization: Basic ${base64_auth_string}
L’algorithme de génération de base64_auth_string ci-dessus est : base64(dev_key:dev_secret)
Exemple de requête
En-tête de requête
GET /v1/template-configs/custom-template-id HTTP/1.1
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
Corps de requête
Aucun
Paramètres de requête
{templateId} dans l’URL indique l’ID du modèle à récupérer, défini par l’appelant lors de l’utilisation de l’API Create Template.
Réponse réussie
{
"template_id": "test-template-1",
"description": "测试模版1",
"send_channel_strategy": "whatsapp|sms",
"brand_name": "品牌名称",
"verify_code_config": {
"verify_code_type": 1,
"verify_code_len": 6,
"verify_code_ttl": 1
},
"whatsapp_config": {
"template_type": 1
},
"sms_config": {
"template_type": 2,
"template_parts": 1,
"template_custom_config": {
"custom_sub_type": "authentication",
"custom_content": "xxx"
}
},
"voice_config": {
"template_type": 1
},
"email_config": {
"template_name": "email模板名称",
"template_custom_configs": [{
"language": "default",
"pre_from_name": "test",
"pre_from_mail": "test@test.com",
"pre_subject": "test",
"template_content": "预设邮件模版内容,必填,自定义变量如{{self}},验证码是{{code}}",
"pre_param_map": {
"self": "这里是self变量预设值"
}
}]
},
"pwa_config": {
"pwa_platform": "xx",
"pwa_code": "xx"
},
"created_time": 1234567890,
"status": 1,
"audit_remark": "xx"
}
Réponse en échec
{
"code": 4001,
"message": "config not exist"
}
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 |
| 4001 | 400 | Le modèle n’existe pas |










