testMode: true).
Uma solicitação para qualquer outro número retorna 400 Bad Request e não envia
nada.
Antes de começar
- A sua equipe tem acesso a números de teste. Consulte O que é o Sandbox?.
- O projeto tem um número de teste. Use o nome da sessão dele em cada solicitação.
- Você tem uma chave de projeto, ou uma chave de equipe, com o escopo
sandbox:write. Listar fixtures exigesandbox:read. Tokens de cliente não podem disparar eventos de teste.
Disparar um evento
Envie o nome do fixture emevent e o número de teste em session:
202 Accepted:
message.received recebem o evento com o mesmo
envelope e os mesmos cabeçalhos de assinatura de qualquer outro evento. Consulte
o evento pelo eventId com GET /platform/projects/{projectId}/events/{eventId};
veja Histórico de eventos. Os eventos de teste trazem
source: "test" e environment: "development", então você consegue
diferenciá-los dos eventos produzidos por atividade do WhatsApp.
Com o SDK de TypeScript:
Fixtures
O nome de cada fixture é o tipo de evento que ele produz.
Liste os fixtures e as substituições deles com
GET /messaging/testing/{projectId}/events/fixtures.
Um fixture rejeita com 400 Bad Request uma substituição que ele não lista.
Sem substituições, cada fixture usa estes valores:
message.received: uma mensagem de texto de+15550100001. DefinamediaTypecomoimage,video,audio,documentoustickerpara enviar metadados de mídia, com umcaptionopcional para imagens, vídeos e documentos. Os eventos de mídia gerados não contêm arquivo para download.message.ack:ackStatusédelivered. Também aceitaread,playedouerror.message.failed:failureReasonésend_failed.session.status:DISCONNECTEDcomSTREAM_ERROR.session.restriction_updated: a restrição começa e termina em 24 horas. DefinarestrictionActivecomofalsepara o evento que a encerra.template.status:APPROVED. DefinatemplateStatuscomoREJECTEDe umreasonopcional para testar uma rejeição.
O que os eventos de teste não mudam
Um evento de teste chega apenas aos seus webhooks e à API de eventos. Ele não muda o número de teste: um eventosession.status não o desconecta, um evento
session.restriction_updated não o restringe e os eventos de chamada não fazem
tocar os clientes do Calls. Os eventos de teste não contam nas métricas de
respostas de campanhas.
Os IDs de contato e de mensagem nos eventos gerados são aleatórios. Eles não se
referem a uma conversa, então você não pode responder a eles.
Enviar uma mensagem simulada entre números de teste
Para testar o ciclo completo, incluindo respostas, envie uma mensagem simulada real de outro número de teste conectado no mesmo projeto. DefinafromSession
em uma solicitação message.received:
"delivery": "simulated" e "eventId": null. O evento
message.received chega logo depois como atividade comum do número de teste,
com source: "runtime", e você pode responder a ele. Os dois números de teste
precisam estar conectados. fromSession aceita apenas a substituição text.
Limites
Cada projeto pode disparar 30 eventos de teste por minuto. As solicitações seguintes retornam429 Too Many Requests com um cabeçalho Retry-After que
informa quantos segundos esperar. Cada disparo fica registrado no
log de auditoria da sua equipe como
testing.event.trigger.
Tentar novamente com segurança
Envie um cabeçalhoIdempotency-Key, com até 255 caracteres ASCII imprimíveis,
para poder tentar novamente um disparo com segurança. Uma solicitação repetida
com a mesma chave e o mesmo corpo recebe o mesmo eventId, então o seu
histórico de eventos e os seus webhooks recebem o evento uma única vez. Um corpo
diferente com a mesma chave cria um evento separado.