Validação de pacote de requisições para mensagens de notificação
Estrutura completa do payload do pacote de requisições
Abaixo segue um exemplo de uma estrutura json com todos os parâmetros que podem aparecer em um payload de requisição de envio de mensagens de notificação. Alguns destes campos são obrigatórios, enquanto outros são opcionais mas devem ser informados dependendo do template utilizado.
{
"nomeTemplate": "NOME_TEMPLATE_META",
"wabaId": "WABA_ID",
"destinatarios": [ "CONTATO_1", "CONTATO_2", "CONTATO_N" ],
"header": {
"idMedia": "ID_MEDIA",
"parametros": [
{
"tipo": "text",
"valor": "VALOR_PARAMETRO_HEADER"
}
]
},
"body": {
"parametros": [
{
"tipo": "text",
"valor": "VALOR_PARAMETRO_BODY"
}
]
}
}
Obrigatoriedade de atributos
A consequência da obrigatoriedade dos campos pode variar de acordo com cada campo. Os campos nomeTemplate, wabaId e destinatarios, por exemplo, causam erro de requisição mal formada caso estes não estejam presentes no payload.
Já os atributos idMedia ou os parâmetros (tanto de cabeçalho quanto de corpo do texto) podem causar erro na chamada à API da Meta para envio de mensagem ou até mesmo ter uma mensagem incorreta enviada ao destinatário final.
| Campo | Pai na estrutura do payload | Obrigatório | Descrição |
|---|---|---|---|
| nomeTemplate | - | Sim | Nome do template que será usado para compor a mensagem. Este template deve ser previamente cadastrado na interface de gereciamento de negócios da Meta. |
| wabaId | - | Sim | Identificador da WhatsApp Business Account (WABA), que deve ser previamente cadastrada na interface de gerenciamento de negócios da Meta. |
| destinatarios | - | Sim | Lista de destinatários para os quais a mensagem será enviada. |
| header | - | Deve ser informado se o template tem cabeçalho e se este contém alguma informação dinâmica. Informações dinâmicas são parâmetros em cabeçalhos do tipo texto ou id da mídia em caso de cabeçalho do tipo mídia. |
Objeto de configuração do cabeçalho a ser incluído na mensagem. |
| idMedia | header | Deve ser informado que o template tem cabeçalho do tipo mídia. Este valor é retornado no serviço de upload de mídia. |
Identificador da mídia na Cloud API da Meta. |
| linkMedia | header | Deve ser informado quando o template tem cabeçalho do tipo mídia. Este valor é retornado no serviço de upload de mídia. |
Endereço de localização da mídia. |
| parametros | header | Deve ser informado quando o template tem cabeçalho do tipo texto e este contém parâmetros em seu valor. Deve haver uma entrada para cada parâmetro declarado no template. O atributo tipo indica o tipo de parâmetro (atualmente apenas text é aceito) e o atribuito valor contém o valor do parâmetro. |
Lista com parâmetros do cabeçalho de texto a ser incluído na mensagem. |
| body | - | Deve ser informado se o corpo da mensagem no template contém alguma informação dinâmica. Informações dinâmicas no corpo da mensagem somente existe na forma de parâmetro. |
Objeto de configuração de parâmetros do corpo de texto da mensagem. |
| parametros | body | Deve ser informado quando o corpo da mensagem no template contém parâmetros em seu texto. Deve haver uma entrada para cada parâmetro declarado no template. |
Lista com parâmetros do corpo da mensagem no template. |
| tipo | parametros (tanto header quanto body) | Sim | Tipo do parâmetro. No momento atual apenas text é aceito. |
| valor | parametros (tanto header quanto body) | Sim | Valor do parâmetro. Conteúdo textual que será incluído na mensagem no local definido pelo parâmetro. |
Outras validações
Mídia
Uma das validações que é feita é em relação à mídia utilizada no cabeçalho do template. No pacote de requisições há o campo idMedia, que contém um identificador de uma mídia que foi feito upload para a Cloud API da Meta. Quando uma requisição é recebida, se este valor é informado ele é validado através de chamada à API da Meta. Se o id é válido esta retorna os dados da mídia. Com o resultado em mãos é validado se o tipo da mídia é um dos permitidos: image, video ou document.
Lista de destinatários
O tamanho da lista de destinatários não pode exceder um limite máximo pré-configurado, que atualmente é 1000.