将消息标记为已读
当你已阅读联系人的 WhatsApp 消息或开始处理其请求时,向对方发送已读确认。你还可以在准备回复时显示正在输入指示器。
前提条件
你需要一个具有 WhatsApp 写入权限的 API 密钥,以及你的工作区收到的消息的 Bird 消息 ID(wam_…)。可使用 whatsapp.received webhook 中的 data.whatsapp_id,或WhatsApp 日志中消息的 id。
将示例消息 ID 替换为你的工作区收到的消息 ID。使用 TypeScript、Python、Go 或 PHP SDK 指南为你的语言初始化客户端。对于 CLI 示例,请安装并认证 CLI,授予 WhatsApp 写入权限。在 cURL 请求中使用与你的工作区区域对应的 API 主机。
1. 将收到的消息标记为已读
使用收到的消息 ID 调用将消息标记为已读。WhatsApp 还会将同一会话中更早的消息标记为已读,因此请选择代表你已阅读位置的消息。
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 '{}'请求成功时返回 202 和 typing_indicator: false。确认回执已被接受并进入处理队列;响应并不表示联系人已看到该回执。已读确认不会产生计费的出站消息。
2. 在准备回复时显示正在输入
要在标记消息已读的同时显示正在输入,请在同一请求中传递 typing_indicator: true:
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 会在你发送消息或 25 秒后清除该指示器。重复调用是安全的。要刷新正在输入状态,请省略 Idempotency-Key 或使用新的密钥;重放之前的请求不会刷新指示器。
3. 检查收到的消息
故障排查
- 404(E15071):检查消息 ID 和工作区。Bird 可在 15 天内解析消息以进行确认;超过此期限的消息无法通过此操作标记为已读。
- 422(E15074):请使用你的工作区可以确认的入站消息。出站消息不是有效的目标。
- 503(E15073):解析消息时遇到临时故障,请重试。