logoDocumentation
Rechercher

Template Management API

Vue d'ensemble

Grâce à l'API de gestion des modèles, vous pouvez ajouter, supprimer et consulter les modèles WABA.

Validation des appels

EngageLab REST API Authentification HTTP Basic : ajoutez l'en-tête HTTP Authorization (Header) :

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 du base64_auth_string est le suivant : base64(dev_key:dev_secret)

  • Le nom de l'en-tête est "Authorization" et la valeur est une paire "username:password" convertie en base64 (avec deux-points au milieu).
  • Dans le scénario de l'API WhatsApp, le username est DevKey et le password est DevSecret. Dans la console, allez dans gestion de la configuration - clé API pour obtenir la page.

Obtenir les modèles

Adresse d'appel

GET https://wa.api.engagelab.cc/v1/templates

Paramètres de la requête

Paramètre Type Option Description
name String Optionnel Nom du modèle, ce champ utilise une correspondance floue
language_code String Optionnel Langue du modèle, voir Code langue
category String Optionnel Catégorie du modèle.
● AUTHENTICATION : Code de vérification
● MARKETING : Marketing
● UTILITY : Notification de service
status String Optionnel Statut du modèle :
  • APPROVED - Approuvé
  • PENDING - En attente
  • REJECTED - Rejeté
  • PENDING_DELETION - Suppression en attente
  • DELETED - Supprimé
  • DISABLED - Désactivé (banni)
  • IN_APPEAL - En appel
  • PAUSED - En pause
    Les développeurs doivent surtout surveiller APPROVED/PENDING/REJECTED/DISABLED
  • Paramètres de réponse

    Paramètre Type Option Description
    id String requis ID du modèle
    name String requis Nom du modèle
    language String requis Langue du modèle, voir code langue.
    category String requis Type du modèle.
  • OTP : mot de passe à usage unique
  • MARKETING : marketing
  • TRANSACTIONAL : transaction
    Remarque : la catégorie du modèle sera mise à jour :
  • AUTHENTICATION
  • MARKETING
  • UTILITY
  • components Tableau d'objets requis Pour plus d'informations sur le contenu du modèle, voir créer des objets composants dans un modèle
    status String requis Statut du modèle :
  • APPROVED
  • IN_APPEAL
  • PENDING
  • REJECTED
  • PENDING_DELETION
  • DELETED
  • DISABLED
  • PAUSED
  • LIMIT_EXCEEDED
  • Exemple de réponse

    // Un tableau json, chaque objet du tableau correspond à un modèle [ { "id": "406979728071589", // id du modèle "name": "code", // nom du modèle "language": "zh_CN", // langue du modèle "status": "APPROVED", // statut, APPROVED signifie approuvé et utilisable "category": "OTP", // catégorie, actuellement supporte OTP/TRANSACTIONAL/MARKETING "components": [ // Contenu spécifique du modèle, peut inclure HEADER/BODY/FOOTER/BUTTON { "type": "HEADER", "format": "text", // type, supporte text/image/location/video/document, par défaut TEXT "text": "Code de vérification d'inscription" // Contenu texte, requis si format = text }, { "type": "BODY", "text": "Votre code de vérification est {{1}}, veuillez le saisir dans les 5 minutes." // Double accolades {{}} indiquent les variables du modèle } ] },  … ]
                  
                  // Un tableau json, chaque objet du tableau correspond à un modèle
    [
        {
            "id": "406979728071589", // id du modèle
            "name": "code", // nom du modèle
            "language": "zh_CN", // langue du modèle
            "status": "APPROVED", // statut, APPROVED signifie approuvé et utilisable
            "category": "OTP", // catégorie, actuellement supporte OTP/TRANSACTIONAL/MARKETING
            "components": [ // Contenu spécifique du modèle, peut inclure HEADER/BODY/FOOTER/BUTTON
                {
                    "type": "HEADER",
                    "format": "text", // type, supporte text/image/location/video/document, par défaut TEXT
                    "text": "Code de vérification d'inscription" // Contenu texte, requis si format = text
                },
                {
                    "type": "BODY",
                    "text": "Votre code de vérification est {{1}}, veuillez le saisir dans les 5 minutes." // Double accolades {{}} indiquent les variables du modèle
                }
            ]
        },
         …
    ]
    
                
    Afficher ce bloc de code dans la fenêtre flottante

    Consulter les informations d'un modèle

    Endpoint de l'API

    GET https://wa.api.engagelab.cc/v1//{template_id}

    Où {template_id} représente l'ID du modèle à consulter.

    Paramètres de la requête

    Aucun

    Exemple de requête

    GET https://wa.api.engagelab.cc/v1/templates/406979728071589

    Paramètres de réponse

    Paramètre Type Requis Description
    id String Requis ID du modèle
    name String Requis Nom du modèle
    language String Requis Langue du modèle, voir Codes langues.
    category String Requis Catégorie du modèle.
  • OTP : Mot de passe à usage unique
  • MARKETING : Marketing
  • TRANSACTIONAL : Transactionnel
    Remarque : les catégories de modèles seront mises à jour au 1er mai 2023 :
  • AUTHENTICATION
  • MARKETING
  • UTILITY
  • components Tableau d'objets Requis Composants du contenu du modèle, voir Objet Components dans Créer un modèle.
    status String Requis Statut du modèle :
    APPROVED, IN_APPEAL, PENDING, REJECTED, PENDING_DELETION, DELETED, DISABLED, PAUSED, LIMIT_EXCEEDED

    Exemple de réponse

    { "id": "406979728071589", // ID du modèle "name": "code", // Nom du modèle "language": "en", // Langue du modèle "status": "APPROVED", // Statut, APPROVED signifie que le modèle est approuvé et utilisable "category": "OTP", // Catégorie, actuellement supporte OTP/TRANSACTIONAL/MARKETING "components": [ // Contenu spécifique du modèle, peut inclure HEADER/BODY/FOOTER/BUTTON { "type": "HEADER", "format": "text", // Type, supporte text/image/location/video/document, par défaut TEXT "text": "Code de vérification d'inscription" // Contenu texte, requis si format = text }, { "type": "BODY", "text": "Votre code de vérification est {{1}}, veuillez le saisir dans les 5 minutes." // Double accolades {{}} indiquent les variables du modèle } ] }
                  
                  {
        "id": "406979728071589", // ID du modèle
        "name": "code", // Nom du modèle
        "language": "en", // Langue du modèle
        "status": "APPROVED", // Statut, APPROVED signifie que le modèle est approuvé et utilisable
        "category": "OTP", // Catégorie, actuellement supporte OTP/TRANSACTIONAL/MARKETING
        "components": [ // Contenu spécifique du modèle, peut inclure HEADER/BODY/FOOTER/BUTTON
            {
                "type": "HEADER",
                "format": "text", // Type, supporte text/image/location/video/document, par défaut TEXT
                "text": "Code de vérification d'inscription" // Contenu texte, requis si format = text
            },
            {
                "type": "BODY",
                "text": "Votre code de vérification est {{1}}, veuillez le saisir dans les 5 minutes." // Double accolades {{}} indiquent les variables du modèle
            }
        ]
    }
    
                
    Afficher ce bloc de code dans la fenêtre flottante

    Créer un modèle

    Adresse d'appel

    POST https://wa.api.engagelab.cc/v1/templates

    Exemple d'appel

    { "name": "template_name", // nom du modèle, les modèles portant le même nom sont autorisés, seuls les lettres minuscules, chiffres et underscores sont acceptés "language": "zh_CN", // Langue du modèle, il n'est pas permis d'avoir deux modèles de même nom et de même langue "category": "OTP", // catégorie, actuellement supporte OTP/TRANSACTIONAL/MARKETING "components": [ { // contenu du modèle "type": "BODY", // bloc de contenu, supporte actuellement HEADER/BODY/FOOTER/BUTTONS "text": "define var as {{1}}", // texte spécifique, inutile de passer le champ format si body est text "example": { "body_text": [ [ "var1" ] ] } }, { "type": "HEADER", "format": "image", // type de contenu, supporte text/image/video/document/location "example": { "header_handle": [ "https://jiguang.cn/demopic.jpg" ] } }, { "type": "FOOTER", "text": "le pied de page ne supporte que le texte sans variable" }, { "type": "BUTTONS", "buttons": [ { "type": "PHONE_NUMBER", // type de bouton, supporte PHONE_NUMBER/URL/QUICK_REPLY "text": "ceci est un numéro de téléphone", "phone_number": "8613800138000" } ] } ] }
                  
                  {
        "name": "template_name", // nom du modèle, les modèles portant le même nom sont autorisés, seuls les lettres minuscules, chiffres et underscores sont acceptés
        "language": "zh_CN", // Langue du modèle, il n'est pas permis d'avoir deux modèles de même nom et de même langue
        "category": "OTP", // catégorie, actuellement supporte OTP/TRANSACTIONAL/MARKETING
        "components": [
            { // contenu du modèle
                "type": "BODY", // bloc de contenu, supporte actuellement HEADER/BODY/FOOTER/BUTTONS
                "text": "define var as {{1}}", // texte spécifique, inutile de passer le champ format si body est text
                "example": {
                    "body_text": [
                        [
                            "var1"
                        ]
                    ]
                }
            },
            {
                "type": "HEADER",
                "format": "image", // type de contenu, supporte text/image/video/document/location
                "example": {
                    "header_handle": [
                        "https://jiguang.cn/demopic.jpg"
                    ]
                }
            },
            {
                "type": "FOOTER",
                "text": "le pied de page ne supporte que le texte sans variable"
            },
            {
                "type": "BUTTONS",
                "buttons": [
                    {
                        "type": "PHONE_NUMBER", // type de bouton, supporte PHONE_NUMBER/URL/QUICK_REPLY
                        "text": "ceci est un numéro de téléphone",
                        "phone_number": "8613800138000"
                    }
                ]
            }
        ]
    }
    
                
    Afficher ce bloc de code dans la fenêtre flottante

    Paramètres de la requête

    Paramètre Type Option Description
    name String requis nom du modèle. Ne peut contenir que des lettres minuscules, chiffres et underscores. Ne doit pas dépasser 512 caractères.
    language String requis langue du modèle, voir code langue.
    category String requis type du modèle.
  • OTP : mot de passe à usage unique
  • MARKETING : marketing
  • TRANSACTIONAL : transaction
    Remarque : la catégorie du modèle sera mise à jour au plus tard le 1er mai 2023 :
  • AUTHENTICATION
  • MARKETING
  • UTILITY
  • components Tableau d'objets
    Composants requis décrivant le contenu du modèle. Pour plus d'informations, voir objet components

    objet components

    Cet objet décrit le contenu du modèle. Le modèle est divisé en plusieurs composants, tels que HEADER, BODY, FOOTER et BUTTONS. Vous pouvez utiliser type pour spécifier ces composants. Différents types de composants supportent différents paramètres comme suit :

    composant header

    Le composant header est optionnel. Ne le définissez pas si vous n'en avez pas besoin.

    Paramètre Type Option Description
    type String requis type du composant. Valeur valide : HEADER.
    format String requis format du header. Valeurs valides : text, image, video, document, correspondant à texte, image, vidéo et fichier.
    text String optionnel contenu texte du header. Ce champ doit être défini si format = text. Vous pouvez définir une variable dans le texte du header, mais une seule variable est autorisée, représentée par {{1}}.
    example Objet JSON optionnel exemple de header. Ce champ est requis si le texte contient une variable ou si le format est de type média. Voir description de l'objet exemple
    description de l'objet exemple
    Paramètre Type Option Description
    header_handle Tableau de chaînes optionnel si le format est image, vidéo ou document, l'url du média correspondant est passée dans ce champ, et l'url doit être accessible. Sinon, la validation du modèle peut être refusée.
    Par exemple : "header_handle": ["https://jiguang.cn/demopic.jpg"]
    header_text Tableau de chaînes optionnel si le format est text et contient une variable, elle est remplacée par ce champ. Par exemple : "header_text": ["var1"]
    header_url Tableau de chaînes optionnel usage identique à header_handle. Notez que ce champ ne sera plus supporté dans les futures versions de WhatsApp. Évitez de l'utiliser.
    Par exemple : "header_url": ["https://jiguang.cn/demopic.jpg"]
    composant body

    Le composant body est obligatoire. Vous devez définir le contenu du body.

    Paramètre Type Option Description
    type String requis type du composant. Valeur valide : BODY.
    text String requis contenu du body. Jusqu'à 1024 caractères. Plusieurs variables possibles. La variable est composée de deux accolades et du numéro de séquence. Le numéro doit commencer à 1 et augmenter, par exemple {{1}} et {{2}}.
    example Objet JSON optionnel exemple de body. Les validateurs Meta jugeront la conformité de votre message sur cet exemple. Voir description de l'objet exemple ce champ est requis si le texte contient des variables.
    description de l'objet exemple
    Paramètre Type Option Description
    body_text Tableau de chaînes optionnel si le texte contient des variables, ce champ est obligatoire. Toutes les variables dans l'ordre des numéros de séquence. Par exemple : "body_text": [["var1","var2","var3"]]

    Le composant footer est optionnel. Ne le définissez pas si vous n'en avez pas besoin.

    Paramètre Type Option Description
    type String requis type du composant. Valeur : FOOTER.
    text String requis contenu du footer. Seul du texte brut, aucune variable n'est autorisée.
    composant buttons

    Le composant buttons est optionnel dans son ensemble. Ne le définissez pas si vous n'en avez pas besoin.

    Paramètre Type Option Description
    type String requis type du composant. Valeur valide : BUTTONS.
    buttons Tableau d'objets requis informations sur les boutons, voir description de l'objet buttons.
    description de l'objet buttons
    Paramètre Type Option Description
    type String requis type du bouton. Valeurs valides : QUICK_REPLY, URL, PHONE_NUMBER.
    text String requis texte du bouton, ne peut pas contenir de variable. Texte brut jusqu'à 25 caractères.
    url String optionnel requis si type = URL. Vous pouvez définir une variable à la fin de l'URL. Une seule variable possible, représentée par {{1}}.
    phone_number String optionnel requis si type = PHONE_NUMBER, ne peut pas contenir de variable, contenu = numéro de téléphone avec indicatif international.
    example Tableau de chaînes optionnel
    Requis si type = QUICK_REPLY ou type = URL

    Paramètres de réponse

    Réponse en cas de succès

    Paramètre Type Option Description
    template_id String requis ID du modèle. Ce paramètre est retourné si la création du modèle est réussie.
    { "template_id": "1275172986566180" // id du modèle }
                  
                  {
        "template_id": "1275172986566180"	// id du modèle
    }
    
                
    Afficher ce bloc de code dans la fenêtre flottante

    Réponse en cas d'échec

    Paramètre Type Option Description
    code int requis code d'erreur. En cas d'échec, le code d'erreur est retourné.
    message String requis message d'erreur retourné en cas d'échec.
    { "code": 5002, "message": "Paramètre invalide. code:100:2388042" }
                  
                  {
        "code": 5002,
        "message": "Paramètre invalide. code:100:2388042"
    }
    
                
    Afficher ce bloc de code dans la fenêtre flottante

    Mettre à jour un modèle

    Adresse d'appel

    PUT https://wa.api.engagelab.cc/v1/templates/{templateId}

    Exemple d'appel

    { "components": [ { // contenu du modèle "type": "BODY", // bloc de contenu, supporte actuellement HEADER/BODY/FOOTER/BUTTONS "text": "define var as {{1}}" // texte spécifique, inutile de passer le champ format si body est text "example": { "body_text": [ [ "var1" ] ] } }, { "type": "HEADER", "format": "image", // type de contenu, supporte text/image/video/document/location "example": { "header_url": [ "https://jiguang.cn/demopic.jpg" ] } }, { "type": "FOOTER", "text": "le pied de page ne supporte que le texte sans variable" }, { "type": "BUTTONS", "buttons": [ { "type": "PHONE_NUMBER", // type de bouton, supporte PHONE_NUMBER/URL/QUICK_REPLY "text": "ceci est un numéro de téléphone", "phone_number": "8613800138000" } ] } ] }
                  
                  {
        "components": [
            { // contenu du modèle
                "type": "BODY", // bloc de contenu, supporte actuellement HEADER/BODY/FOOTER/BUTTONS
                "text": "define var as {{1}}" // texte spécifique, inutile de passer le champ format si body est text
          "example": {
                    "body_text": [
                        [
                            "var1"
                        ]
                    ]
                }
            },
            {
                "type": "HEADER",
                "format": "image", // type de contenu, supporte text/image/video/document/location
                "example": {
                    "header_url": [
                        "https://jiguang.cn/demopic.jpg"
                    ]
                }
            },
            {
                "type": "FOOTER",
                "text": "le pied de page ne supporte que le texte sans variable"
            },
            {
                "type": "BUTTONS",
                "buttons": [
                    {
                        "type": "PHONE_NUMBER", // type de bouton, supporte PHONE_NUMBER/URL/QUICK_REPLY
                        "text": "ceci est un numéro de téléphone",
                        "phone_number": "8613800138000"
                    }
                ]
            }
        ]
    }
    
                
    Afficher ce bloc de code dans la fenêtre flottante

    Paramètres de la requête

    Identiques aux paramètres de la requête de l'interface de création de modèle.

    Paramètres de réponse

    Réponse en cas de succès

    Paramètre Type Option Description
    code int requis code de retour, toujours 0
    message String requis information retournée. La valeur est toujours success.
    { "code": 0, "message": "success" }
                  
                  {
        "code": 0,
        "message": "success"
    }
    
                
    Afficher ce bloc de code dans la fenêtre flottante

    Réponse en cas d'échec

    Paramètre Type Option Description
    code int requis code d'erreur. En cas d'échec, le code d'erreur est retourné.
    message String requis message d'erreur retourné en cas d'échec.
    { "code": 5002, "message": "Paramètre invalide. code:100:2593002" }
                  
                  {
        "code": 5002,
        "message": "Paramètre invalide. code:100:2593002"
    }
    
                
    Afficher ce bloc de code dans la fenêtre flottante

    Supprimer un modèle

    Adresse d'appel

    DELETE https://wa.api.engagelab.cc/v1/templates/{template_name}

    Remarque : Ici, il faut passer le nom du modèle, pas l'ID du modèle. Cela supprimera le contenu du modèle pour toutes les langues de ce nom de modèle.

    Paramètres de réponse

    Réponse en cas de succès

    Paramètre Type Option Description
    code int requis code de retour, toujours 0
    message String requis information retournée. La valeur est toujours success.
    { "code": 0, "message": "success" }
                  
                  {
        "code": 0,
        "message": "success"
    }
    
                
    Afficher ce bloc de code dans la fenêtre flottante

    Réponse en cas d'échec

    Paramètre Type Option Description
    code int requis code d'erreur. En cas d'échec, le code d'erreur est retourné.
    message String requis message d'erreur retourné en cas d'échec.
    { "code": 2004, "message": "une erreur est survenue" }
                  
                  {
        "code": 2004,
        "message": "une erreur est survenue"
    }
    
                
    Afficher ce bloc de code dans la fenêtre flottante

    Codes d'erreur

    Code Code Http Description
    1000 500 erreur interne
    2001 401 Authentification EngageLab échouée, token non valide.
    2002 401 Authentification côté EngageLab échouée. Le token a expiré ou a été désactivé.
    2003 400 Authentification WhatsApp échouée, veuillez contacter le service client EngageLab
    2004 403 vous n'êtes pas autorisé à appeler cette API.
    3001 400 Format des paramètres de la requête invalide. Vérifiez l'utilisation du format JSON.
    3002 400 Les paramètres de la requête sont incorrects. Vérifiez qu'ils répondent aux exigences.
    3003 400 Message d'erreur retourné car le paramètre de requête est invalide.
    4001 400 Le modèle n'existe pas.
    5002 400 La demande de modèle n'a pas pu être traitée par Meta. Voir la description du message pour plus d'informations.

    Commentaires

    Exigences de format des messages média

    | Type de média | Types de format Content-Type pris en charge | Limite de taille | | --- | --- | --- | --- | | image | image/jpeg, image/png, ne supporte pas les fonds transparents | 5 Mo | | vidéo | video/mp4 | 16 Mo | | document | Format PDF uniquement | 100 Mo |

    code langue

    Langue Code
    Afrikaans af
    Albanais sq
    Arabe ar
    Azerbaïdjanais az
    Bengali bn
    Bulgare bg
    Catalan ca
    Chinois (CHN) zh_CN
    Chinois (HKG) zh_HK
    Chinois (TAI) zh_TW
    Croate hr
    Tchèque cs
    Danois da
    Néerlandais nl
    Anglais en
    Anglais (UK) en_GB
    Anglais (US) en_US
    Estonien et
    Philippin fil
    Finnois fi
    Français fr
    Géorgien ka
    Allemand de
    Grec el
    Gujarati gu
    Haoussa ha
    Hébreu he
    Hindi hi
    Hongrois hu
    Indonésien id
    Irlandais ga
    Italien it
    Japonais ja
    Kannada kn
    Kazakh kk
    Kinyarwanda rw_RW
    Coréen ko
    Kirghize (Kirghizistan) ky_KG
    Lao lo
    Letton lv
    Lituanien lt
    Macédonien mk
    Malais ms
    Malayalam ml
    Marathi mr
    Norvégien nb
    Persan fa
    Polonais pl
    Portugais (BR) pt_BR
    Portugais (POR) pt_PT
    Pendjabi pa
    Roumain ro
    Russe ru
    Serbe sr
    Slovaque sk
    Slovène sl
    Espagnol es
    Espagnol (ARG) es_AR
    Espagnol (ESP) es_ES
    Espagnol (MEX) es_MX
    Swahili sw
    Suédois sv
    Tamoul ta
    Télougou te
    Thaï th
    Turc tr
    Ukrainien uk
    Ourdou ur
    Ouzbek uz
    Vietnamien vi
    Zoulou zu

    Pour plus d'informations sur la correspondance entre la langue et le code correspondant, vous pouvez également télécharger ce fichier :
    Template language code.xlsx

    icon
    Contactez-nous