Contrassegnare un messaggio come letto
Conferma la ricezione di un messaggio WhatsApp di un contatto quando lo hai letto o hai iniziato a gestire la sua richiesta. Puoi anche mostrare un indicatore di digitazione mentre prepari una risposta.
Prerequisiti
Ti serve una chiave API con permesso di scrittura WhatsApp e l'ID messaggio Bird (wam_…) di un messaggio ricevuto dal tuo spazio di lavoro. Usa data.whatsapp_id dal webhook whatsapp.received, oppure id del messaggio dal log WhatsApp.
Sostituisci l'ID messaggio di esempio con l'ID di un messaggio ricevuto dal tuo spazio di lavoro. Inizializza il client per il tuo linguaggio usando la guida SDK per TypeScript, Python, Go o PHP. Per gli esempi CLI, installa e autentica la CLI con accesso in scrittura WhatsApp. Usa l'host API per la regione del tuo spazio di lavoro nelle richieste cURL.
1. Contrassegnare il messaggio ricevuto come letto
Chiama Contrassegna un messaggio come letto con l'ID del messaggio ricevuto. WhatsApp contrassegna come letti anche i messaggi precedenti nella stessa conversazione, quindi scegli il messaggio che rappresenta fino a dove hai letto.
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 '{}'Una richiesta riuscita restituisce 202 con typing_indicator: false. La conferma è accettata per l'elaborazione; la risposta non garantisce che il contatto l'abbia vista. Le conferme di lettura non generano messaggi in uscita fatturabili.
2. Mostrare la digitazione mentre prepari una risposta
Per contrassegnare il messaggio come letto e mostrare la digitazione, passa typing_indicator: true nella stessa richiesta:
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 cancella l'indicatore quando invii un messaggio o dopo 25 secondi. Ripetere la chiamata è sicuro. Per aggiornare la digitazione, ometti Idempotency-Key o usa una nuova chiave; riprodurre una richiesta precedente non aggiorna l'indicatore.
3. Controllare il messaggio ricevuto
Recupera il messaggio per ispezionare read_at. Dopo che WhatsApp accetta la conferma, il messaggio ricevuto può contenere questo timestamp mantenendo il suo stato received. Non esiste una risorsa di conferma separata né un webhook di consegna da monitorare.
Risoluzione dei problemi
- 404 (E15071): controlla l'ID messaggio e lo spazio di lavoro. Bird può risolvere un messaggio per la conferma per 15 giorni; un messaggio più vecchio non può essere contrassegnato come letto tramite questa operazione.
- 422 (E15074): usa un messaggio in entrata che il tuo spazio di lavoro può confermare. Un messaggio in uscita non è un destinatario valido.
- 503 (E15073): riprova dopo un errore temporaneo nella risoluzione del messaggio.
Passaggi successivi
Risorse correlate
Prosegui con la documentazione, le guide e gli esempi per questo argomento. Le risorse sono in inglese.
Guarda la guidaConnecting WhatsApp to Bird: from buying a number to a live channelComprendi il concettoWhat is the 24-hour customer service window on WhatsApp?Usa lo strumentoWhatsApp message builderEsplora la funzionalitàWhatsApp
Prova l'esercitazione e ottieni un brief di implementazione