Les modèles de message interactif permettent d’envoyer davantage de types de contenus à vos destinataires, outre les modèles de message standard et les modèles de message multimédia, en incluant des boutons interactifs utilisant l’objet components
.
Il existe deux types de boutons prédéfinis :
Ces boutons peuvent être joints à des textos ou à des messages multimédias. Une fois que vos modèles de message interactif ont été créés et approuvés, vous pouvez les utiliser dans des messages de notification ainsi que dans des messages de service client.
Vous devez :
Une fois le modèle de message approuvé, vous pouvez utiliser l’API pour envoyer un message.
POST
à /messages
POST /v1/messages { "to": "recipient_wa_id", "type": "template", "template": { "namespace": "your-namespace", "language": { "policy": "deterministic", "code": "your-language-and-locale-code" }, "name": "your-template-name", "components": [ { "type" : "header", "parameters": [ { "type": "text", "text": "replacement_text" } ] # end header }, { "type" : "body", "parameters": [ { "type": "text", "text": "replacement_text" }, { "type": "currency", "currency" : { "fallback_value": "$100.99", "code": "USD", "amount_1000": 100990 } }, { "type": "date_time", "date_time" : { "fallback_value": "February 25, 1977", "day_of_week": 5, "day_of_month": 25, "year": 1977, "month": 2, "hour": 15, "minute": 33, #OR "timestamp": 1485470276 } }, { ... # Any additional template parameters } ] # end body }, # The following part of this code example includes several possible button types, # not all are required for an interactive message template API call. { "type": "button", "sub_type" : "quick_reply", "index": "0", "parameters": [ { "type": "payload", # Business Developer-defined payload "payload":"aGlzIHRoaXMgaXMgY29vZHNhc2phZHdpcXdlMGZoIGFTIEZISUQgV1FEV0RT" } ] }, { "type": "button", "sub_type" : "url", "index": "1", "parameters": [ { "type": "text", # Business Developer-defined dynamic URL suffix "text": "9rwnB8RbYmPF5t2Mn09x4h" } ] }, { "type": "button", "sub_type" : "url", "index": "2", "parameters": [ { "type": "text", # Business Developer-defined dynamic URL suffix "text": "ticket.pdf" } ] } ] } }
components
: pour les modèles de message interactif, incluez le type button
et le champ sub_type
Une réponse positive comprend un objet messages
avec un id
.
{ "messages": [{ "id": "gBEGkYiEB1VXAglK1ZEqA1YKPrU" }] }
Une réponse négative comprend un objet erreur contenant une chaîne d’erreur, un code d’erreur et des informations complémentaires.
Si un modèle est envoyé à un compte incapable de recevoir le modèle, l’erreur 1026 (ReceiverIncapable)
sera envoyée dans l’objet erreur au serveur Webhook configuré.
Pour plus d’informations sur les erreurs, consultez l’article Codes d’erreur et d’état.
Lorsqu’un utilisateur ou une utilisatrice clique sur un bouton de réponse rapide, une réponse est envoyée à l’entreprise. Pour plus d’informations, consultez la section Rappel d’un clic sur un bouton de réponse rapide. Les utilisateurs ou utilisatrices peuvent également choisir de ne pas cliquer sur le bouton et vous envoyer uniquement un message au format libre.
{ "contacts": [ { "profile": { "name": "Kerry Fisher" }, "wa_id": "16505551234" } ], "messages": [ { "button": { "payload": "No-Button-Payload", "text": "No" }, "context": { "from": "16315558007", "id": "gBGGFmkiWVVPAgkgQkwi7IORac0" }, "from": "16505551234", "id": "ABGGFmkiWVVPAgo-sKD87hgxPHdF", "timestamp": "1591210827", "type": "button" } ] # If there are any errors, an errors field (array) will be present "errors": [ { ... } ] }
Ces exemples illustrent le processus de configuration des modèles de message interactif. Commencez par créer le modèle dans votre Business Manager, puis envoyez les modèles de message à l’aide d’appels d’API au point de terminaison des messages
.
Cet exemple illustre la création d’un modèle de message multimédia interactif associé à des boutons de réponse rapide.
messages
est ajouté aux informations de paramètres.POST /v1/messages { "to": "your-test-recipient-wa-id", "recipient_type": "individual", "type": "template", "template": { "namespace": "88b39973_f0d5_54e1_29cf_e80f1e3da4f2", "name": "upcoming_trip_reminder", "language": { "code": "en", "policy": "deterministic" }, "components": [ { "type": "header", "parameters": [ { "type": "text", "text": "12/26" } ] }, { "type": "body", "parameters": [ { "type": "text", "text": "*Ski Trip*" }, { "type": "date_time", "date_time" : { "fallback_value": "29th July 2019, 8:00am", "day_of_month": "29", "year": "2019", "month": "7", "hour": "8", "minute": "00" } }, { "type": "text", "text": "*Squaw Valley Ski Resort, Tahoe*" } ] }, { "type": "button", "sub_type": "quick_reply", "index": 0, "parameters": [ { "type": "payload", "payload": "Yes-Button-Payload" } ] }, { "type": "button", "sub_type": "quick_reply", "index": 1, "parameters": [ { "type": "payload", "payload": "No-Button-Payload" } ] } ] } }
Cet exemple illustre la création d’un modèle de message multimédia interactif associé à des boutons d’URL et de numéro de téléphone.
messages
est ajouté aux informations de paramètres.POST /v1/messages { "to": "your-test-recipient-wa-id", "recipient_type": "individual", "type": "template", "template": { "namespace": "88b39973_f0d5_54e1_29cf_e80f1e3da4f2", "name": "oculus_shipment_update", "language": { "code": "en", "policy": "deterministic" }, "components": [ { "type": "header", "parameters": [{ "type": "image", "image": { "link": "link-to-your-image" } }] }, { "type": "body", "parameters": [ { "type": "text", "text": "Anand" }, { "type": "text", "text": "Quest" }, { "type": "text", "text": "113-0921387" }, { "type": "date_time", "date_time" : { "fallback_value": "23rd Nov 2019", "day_of_month": "20", "year": "2019", "month": "9" } } ] }, { "type": "button", "index": "0", "sub_type": "url", "parameters": [ { "type": "text", "text": "1Z999AA10123456784" } ] } ] } }