Enviar reacciones de WhatsApp
Reacciona al mensaje de un contacto con un emoji, por ejemplo un pulgar arriba para confirmar su respuesta. Puedes reemplazar tu reacción o eliminarla después.
Requisitos previos
Necesitas una clave de API con permiso de escritura de WhatsApp y el ID de mensaje Bird (wam_…) de un mensaje que tu espacio de trabajo haya recibido. Usa data.whatsapp_id de whatsapp.received, o el id del mensaje en el registro de WhatsApp.
Reemplaza el ID de mensaje de ejemplo con el ID de un mensaje que tu espacio de trabajo haya recibido. Inicializa el cliente para tu lenguaje con la guía de SDK de TypeScript, Python, Go o PHP. Para ejemplos de CLI, instala y autentica el CLI con acceso de escritura de WhatsApp. Usa el host API de tu región del espacio de trabajo en las solicitudes cURL.
1. Añadir una reacción
Llama a Reaccionar a un mensaje de WhatsApp con un solo emoji:
const reaction = await bird.whatsapp.reaction.set("wam_01krdgeqcxet5s7t44vh8rt9mg", {
emoji: "👍",
});
console.log(reaction.id, reaction.emoji);reaction = client.whatsapp.reaction.set("wam_01krdgeqcxet5s7t44vh8rt9mg", emoji="\U0001f44d")
print(reaction.id, reaction.emoji)reaction, err := client.Whatsapp.Reaction.Set(context.Background(), "wam_01krdgeqcxet5s7t44vh8rt9mg", bird.WhatsappReactionSetParams{
Emoji: "\U0001F44D",
})
if err != nil {
log.Fatal(err)
}
fmt.Println(reaction.Id, reaction.Emoji)use MessageBird\Wire\Model\WhatsAppReactionUpsert;
$reaction = $bird->whatsapp->reaction->set(
'wam_01krdgeqcxet5s7t44vh8rt9mg',
(new WhatsAppReactionUpsert())->setEmoji("\u{1F44D}"),
);
echo $reaction->getId(), ' ', $reaction->getEmoji();bird whatsapp reaction set wam_01krdgeqcxet5s7t44vh8rt9mg --emoji '👍'curl -X PUT "https://us1.platform.bird.com/v1/whatsapp/messages/wam_01krdgeqcxet5s7t44vh8rt9mg/reaction" \
-H "Authorization: Bearer $BIRD_API_KEY" \
-H "Content-Type: application/json" \
-d '{"emoji": "👍"}'El API devuelve 202 con el id (war_…) y emoji de la reacción aceptada. Guarda el ID de reacción para encontrar su resultado en el registro de reacciones. La aceptación no confirma que WhatsApp haya aplicado la reacción.
Solo puedes tener una reacción por mensaje. Para reemplazarla, repite la solicitud PUT con un emoji diferente. Las reacciones no tienen costo.
2. Comprobar el resultado de la reacción
Recupera el mensaje para ver sus reactions actuales, con una entrada por remitente. Para el resultado de un cambio específico, lista los eventos de reacción del mensaje y busca el ID de reacción guardado.
El registro de reacciones almacena los resultados terminales: sent significa que WhatsApp aceptó tu cambio, failed significa que WhatsApp lo rechazó, y rejected significa que Bird lo rechazó antes de la transmisión. Inspecciona el error del evento para un cambio fallido o rechazado. Una reacción pendiente aún no tiene entrada en el registro. Las reacciones no tienen confirmaciones de entrega ni de lectura, ni webhook de reacción saliente.
3. Eliminar tu reacción
Llama a Eliminar una reacción de WhatsApp con el mismo ID de mensaje:
await bird.whatsapp.reaction.remove("wam_01krdgeqcxet5s7t44vh8rt9mg");client.whatsapp.reaction.remove("wam_01krdgeqcxet5s7t44vh8rt9mg")if err := client.Whatsapp.Reaction.Remove(context.Background(), "wam_01krdgeqcxet5s7t44vh8rt9mg"); err != nil {
log.Fatal(err)
}$bird->whatsapp->reaction->remove('wam_01krdgeqcxet5s7t44vh8rt9mg');bird whatsapp reaction remove wam_01krdgeqcxet5s7t44vh8rt9mg --yescurl -X DELETE "https://us1.platform.bird.com/v1/whatsapp/messages/wam_01krdgeqcxet5s7t44vh8rt9mg/reaction" \
-H "Authorization: Bearer $BIRD_API_KEY"El API devuelve 202 sin cuerpo de respuesta. La eliminación se procesa de forma asíncrona; comprueba las reactions actuales del mensaje o su registro de reacciones para confirmar el resultado. Una entrada de eliminación en el registro tiene emoji: null. Eliminar una reacción inexistente es seguro, y esta operación elimina la reacción de tu espacio de trabajo, no la del contacto.
Solución de problemas
- 404 (E15071): Verifica el ID de mensaje y el espacio de trabajo. Bird conserva la referencia del mensaje necesaria para añadir o eliminar una reacción durante 15 días.
- 422 (E01001): Usa un mensaje recibido y un solo emoji. No puedes reaccionar a un mensaje que tu espacio de trabajo haya enviado. Un emoji combinado cuenta como un emoji; dos emoji separados no.
- Reacción sin cambios después de 202: Inspecciona el registro de reacciones en busca de un cambio fallido o rechazado. Una respuesta HTTP exitosa confirma la aceptación para procesamiento.
Próximos pasos
Recursos relacionados
Continúa con la documentación, guías y ejemplos sobre este tema. Los recursos están en inglés.
Ver la guíaConnecting WhatsApp to Bird: from buying a number to a live channelComprender el conceptoWhat is the 24-hour customer service window on WhatsApp?Usar la herramientaWhatsApp message builderExplorar la funcionalidadWhatsApp
Prueba el ejercicio y obtén un resumen de implementación