Marcar mensagem como lida
Confirme a leitura de uma mensagem WhatsApp de um contato quando você a tiver lido ou começado a tratar a solicitação. Você também pode exibir um indicador de digitação enquanto prepara uma resposta.
Pré-requisitos
Você precisa de uma chave API com permissão de escrita WhatsApp e do ID de mensagem Bird (wam_…) de uma mensagem que seu espaço de trabalho recebeu. Use data.whatsapp_id do webhook whatsapp.received, ou o id da mensagem no log de WhatsApp.
Substitua o ID de mensagem de exemplo pelo ID de uma mensagem que seu espaço de trabalho recebeu. Inicialize o cliente para sua linguagem usando o guia de TypeScript, Python, Go ou PHP SDK. Para exemplos CLI, instale e autentique o CLI com acesso de escrita WhatsApp. Use o host API da região do seu espaço de trabalho nas requisições cURL.
1. Marcar a mensagem recebida como lida
Chame Marcar uma mensagem como lida com o ID da mensagem recebida. WhatsApp também marca mensagens anteriores na mesma conversa como lidas, então escolha a mensagem que representa até onde você leu.
const acknowledgement = await bird.whatsapp.markRead("wam_01krdgeqcxet5s7t44vh8rt9mg", {});
console.log(acknowledgement.typing_indicator);ack = client.whatsapp.mark_read("wam_01krdgeqcxet5s7t44vh8rt9mg")
print(ack.typing_indicator)ack, err := client.Whatsapp.MarkRead(context.Background(), "wam_01krdgeqcxet5s7t44vh8rt9mg", bird.WhatsappMarkReadParams{})
if err != nil {
log.Fatal(err)
}
fmt.Println(ack.TypingIndicator)use MessageBird\Wire\Model\WhatsAppReadReceiptRequest;
$ack = $bird->whatsapp->markRead(
'wam_01krdgeqcxet5s7t44vh8rt9mg',
new WhatsAppReadReceiptRequest(),
);
var_dump($ack->getTypingIndicator());bird whatsapp mark-read wam_01krdgeqcxet5s7t44vh8rt9mgcurl -X POST "https://us1.platform.bird.com/v1/whatsapp/messages/wam_01krdgeqcxet5s7t44vh8rt9mg/read" \
-H "Authorization: Bearer $BIRD_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'Uma requisição bem-sucedida retorna 202 com typing_indicator: false. A confirmação é aceita para processamento; a resposta não garante que o contato a tenha visto. Confirmações de leitura não geram mensagem de saída cobrável.
2. Exibir digitação enquanto prepara uma resposta
Para marcar a mensagem como lida e exibir digitação, passe typing_indicator: true na mesma requisição:
await bird.whatsapp.markRead("wam_01krdgeqcxet5s7t44vh8rt9mg", {
typing_indicator: true,
});ack = client.whatsapp.mark_read("wam_01krdgeqcxet5s7t44vh8rt9mg", typing_indicator=True)
print(ack.typing_indicator)ack, err := client.Whatsapp.MarkRead(context.Background(), "wam_01krdgeqcxet5s7t44vh8rt9mg", bird.WhatsappMarkReadParams{
TypingIndicator: bird.Ptr(true),
})
if err != nil {
log.Fatal(err)
}
fmt.Println(ack.TypingIndicator)$ack = $bird->whatsapp->markRead(
'wam_01krdgeqcxet5s7t44vh8rt9mg',
(new WhatsAppReadReceiptRequest())->setTypingIndicator(true),
);
var_dump($ack->getTypingIndicator());bird whatsapp mark-read wam_01krdgeqcxet5s7t44vh8rt9mg --typing-indicator=truecurl -X POST "https://us1.platform.bird.com/v1/whatsapp/messages/wam_01krdgeqcxet5s7t44vh8rt9mg/read" \
-H "Authorization: Bearer $BIRD_API_KEY" \
-H "Content-Type: application/json" \
-d '{"typing_indicator": true}'WhatsApp limpa o indicador quando você envia uma mensagem ou após 25 segundos. Repetir a chamada é seguro. Para atualizar a digitação, omita Idempotency-Key ou use uma nova chave; reenviar uma requisição anterior não atualiza o indicador.
3. Verificar a mensagem recebida
Recupere a mensagem para inspecionar read_at. Depois que WhatsApp aceita a confirmação, a mensagem recebida pode conter esse timestamp e manter seu status received. Não existe um recurso de confirmação separado nem webhook de entrega para rastrear.
Solução de problemas
- 404 (E15071): Verifique o ID da mensagem e o espaço de trabalho. Bird consegue resolver uma mensagem para confirmação por 15 dias; uma mensagem mais antiga não pode ser marcada como lida por esta operação.
- 422 (E15074): Use uma mensagem de entrada que seu espaço de trabalho possa confirmar. Uma mensagem de saída não é um alvo elegível.
- 503 (E15073): Tente novamente após uma falha temporária ao resolver a mensagem.
Próximos passos
Recursos relacionados
Continue com a documentação, guias e exemplos sobre este tópico. Os recursos estão em inglês.
Assista ao guiaConnecting WhatsApp to Bird: from buying a number to a live channelEntenda o conceitoWhat is the 24-hour customer service window on WhatsApp?Use a ferramentaWhatsApp message builderExplore a funcionalidadeWhatsApp
Experimente na prática e obtenha um resumo de implementação