Marquer un message comme lu
Accusez réception du message WhatsApp d'un contact lorsque vous l'avez lu ou que vous avez commencé à traiter sa demande. Vous pouvez également afficher un indicateur de saisie pendant que vous préparez une réponse.
Prérequis
Vous avez besoin d'une clé API avec la permission d'écriture WhatsApp et de l'identifiant de message Bird (wam_…) d'un message reçu par votre espace de travail. Utilisez data.whatsapp_id provenant du webhook whatsapp.received, ou le id du message depuis le journal WhatsApp.
Remplacez l'identifiant de message d'exemple par l'identifiant d'un message reçu par votre espace de travail. Initialisez le client pour votre langage à l'aide du guide SDK TypeScript, Python, Go ou PHP. Pour les exemples CLI, installez et authentifiez le CLI avec l'accès en écriture WhatsApp. Utilisez l'hôte API correspondant à la région de votre espace de travail dans les requêtes cURL.
1. Marquer le message reçu comme lu
Appelez Marquer un message comme lu avec l'identifiant du message reçu. WhatsApp marque également les messages antérieurs de la même conversation comme lus : choisissez le message qui représente jusqu'où vous avez lu.
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 '{}'Une requête réussie renvoie 202 avec typing_indicator: false. L'accusé de réception est accepté pour traitement ; la réponse ne confirme pas que le contact l'a vu. Les accusés de lecture ne créent aucun message sortant facturable.
2. Afficher la saisie en cours pendant la préparation d'une réponse
Pour marquer le message comme lu et afficher la saisie en cours, passez typing_indicator: true dans la même requête :
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 efface l'indicateur lorsque vous envoyez un message ou après 25 secondes. Répéter l'appel est sans risque. Pour rafraîchir l'indicateur de saisie, omettez Idempotency-Key ou utilisez une nouvelle clé ; rejouer une requête précédente ne rafraîchit pas l'indicateur.
3. Vérifier le message reçu
Récupérez le message pour inspecter read_at. Après que WhatsApp a accepté l'accusé de réception, le message reçu peut porter cet horodatage tout en conservant son statut received. Il n'existe ni ressource d'accusé de réception séparée ni webhook de livraison à suivre.
Dépannage
- 404 (E15071) : Vérifiez l'identifiant du message et l'espace de travail. Bird peut résoudre un message pour accusé de réception pendant 15 jours ; un message plus ancien ne peut pas être marqué comme lu via cette opération.
- 422 (E15074) : Utilisez un message entrant que votre espace de travail peut accuser réception. Un message sortant n'est pas une cible valide.
- 503 (E15073) : Réessayez après un échec temporaire de résolution du message.
Étapes suivantes
Ressources associées
Poursuivez avec la documentation, les guides et les exemples sur ce sujet. Les ressources sont en anglais.
Regarder le guideConnecting WhatsApp to Bird: from buying a number to a live channelComprendre le conceptWhat is the 24-hour customer service window on WhatsApp?Utiliser l'outilWhatsApp message builderExplorer la fonctionnalitéWhatsApp
Essayez la pratique et obtenez un guide d'implémentation