A API Local está sendo descontinuada. Consulte o documento Descontinuação da API Local para ver mais informações e saber como migrar para nossa API de Nuvem de última geração.
We are making changes to the WhatsApp Business Platform pricing model. See Pricing Updates on the WhatsApp Business Platform.
Os modelos de mensagem interativa expandem o conteúdo que pode ser enviado ao irem além do modelo de mensagem padrão e dos tipos de modelo de mensagens de mídia para incluir botões interativos com o objeto components
.
Estes são os dois tipos de botões predefinidos que oferecemos:
Esses botões podem ser anexados a mensagens de texto ou de mídia. Depois de criados e aprovados, os modelos de mensagem interativa podem ser usados em mensagens de notificação e de atendimento ao cliente.
Você precisa:
Assim que o modelo for aprovado, você poderá usar a API para enviar mensagens.
POST
para /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" } ] } ] } }
Uma resposta bem-sucedida inclui um objeto messages
com um id
.
{ "messages": [{ "id": "gBEGkYiEB1VXAglK1ZEqA1YKPrU" }] }
Uma resposta malsucedida contém um objeto com uma string de erro, um código correspondente e outras informações.
Se um modelo for encaminhado a uma conta que não pode recebê-lo, o erro 1026 (ReceiverIncapable)
será enviado ao servidor de Webhook configurado.
Consulte Mensagens de erro e status para obter mais informações sobre erros.
Uma resposta é enviada à empresa quando o usuário clica no botão de resposta rápida. Para ver mais informações, leia Retorno de chamada para um clique no botão de resposta rápida. Além disso, em vez de clicar no botão, os usuários podem optar por enviar uma mensagem de formato livre.
{ "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": [ { ... } ] }
Estes exemplos ilustram o processo de configuração de modelos de mensagem interativa, desde a criação de um modelo no Gerenciador de Negócios até o envio dele com chamadas de API para o ponto de extremidade messages
.
Este exemplo mostra a criação de um modelo de mensagem interativa com botões de resposta rápida.
messages
adiciona as informações do parâmetro.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" } ] } ] } }
Este exemplo mostra a criação de um modelo de mensagem interativa com botões de número de telefone e URL.
messages
adiciona as informações do parâmetro.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" } ] } ] } }