Mensajes de video de WhatsApp
Un mensaje de video lleva una URL pública que WhatsApp obtiene en el momento del envío, con un pie de texto opcional debajo.
Enviar un video
Establece video.url:
const msg = await bird.whatsapp.send({
to: "+16505551234",
from: "+13124495648",
video: { url: "https://cdn.example.com/unboxing.mp4" },
});
console.log(msg.id, msg.status);msg = client.whatsapp.send(
to="+16505551234",
from_="+13124495648",
video={"url": "https://cdn.example.com/unboxing.mp4"},
)
print(msg.id, msg.status)package main
import (
"context"
"fmt"
"log"
"os"
bird "github.com/messagebird/bird-sdk-go"
"github.com/messagebird/bird-sdk-go/option"
)
func main() {
client, err := bird.NewClient(option.WithAPIKey(os.Getenv("BIRD_API_KEY")))
if err != nil {
log.Fatal(err)
}
msg, err := client.Whatsapp.Send(context.Background(), bird.WhatsappSendParams{
To: "+16505551234",
From: "+13124495648",
Video: &bird.WhatsAppVideoSend{Url: "https://cdn.example.com/unboxing.mp4"},
})
if err != nil {
log.Fatal(err)
}
fmt.Println(msg.Id, *msg.Status)
}$video = (new WhatsAppMessageSendRequestVideo())
->setUrl('https://cdn.example.com/unboxing.mp4');
$message = $bird->whatsapp->send(
to: '+16505551234',
from: '+13124495648',
video: $video,
);
echo $message->getId(), ' ', $message->getStatus();bird whatsapp send \
--from +13124495648 \
--to +16505551234 \
--video https://cdn.example.com/unboxing.mp4{
"name": "whatsapp_send",
"arguments": {
"from": "+13124495648",
"to": "+16505551234",
"video": {
"url": "https://cdn.example.com/unboxing.mp4"
}
}
}curl -X POST "https://us1.platform.bird.com/v1/whatsapp/messages" \
-H "Authorization: Bearer $BIRD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "+16505551234",
"from": "+13124495648",
"video": {
"url": "https://cdn.example.com/unboxing.mp4"
}
}'La forma completa agrega un caption opcional:
Ejemplo de código
{
"to": "+16505551234",
"from": "+13124495648",
"video": {
"url": "https://cdn.example.com/unboxing.mp4",
"caption": "How to set it up"
}
}video no tiene el campo filename. from es obligatorio en cada mensaje de servicio: un número que tu espacio de trabajo posee, no uno administrado por Bird.
Límites
| Campo | Límite | Verificado por |
|---|---|---|
| Tamaño de archivo | 16 MB | Solo WhatsApp, al obtener (async) |
| Formato | Contenedor MP4, video H.264, audio AAC | Solo WhatsApp, al obtener (async) |
| caption | hasta 1024 caracteres | Bird, al aceptar (422) |
| url | absoluta, https, tiene host, sin espacios crudos | Bird, al aceptar (422) |
Bird verifica la forma de la URL y la longitud del pie de texto antes de encolar cualquier cosa. No verifica el tamaño real del archivo, el contenedor ni el códec; solo la obtención propia de WhatsApp en el momento del envío puede hacerlo. Consulta en el hub enviar medios por URL y cuando un medio falla.
Leer un video entrante
Un video entrante lleva el mismo objeto video, más un id y mime_type que Bird obtuvo al descargar el archivo. Ambos están ausentes en una lectura de un mensaje saliente, ya que Bird nunca descargó el archivo que envió. Consulta Recibir video de WhatsApp para la lectura entrante completa, el payload de whatsapp.received y qué tener en cuenta.
Límites y modos de fallo
- La ventana de servicio al cliente debe estar abierta. Un video es un mensaje de servicio, entregable solo dentro de una ventana abierta; consulta en el hub la ventana de servicio al cliente.
- Bird rechaza http; WhatsApp sí lo obtendría. Consulta en el hub enviar medios por URL para la verificación completa de forma.
- Una obtención rechazada se cobra de todos modos. Consulta en el hub cuando un medio falla para media_rejected y el hecho del cobro en caso de fallo. El texto de rechazo propio de video de WhatsApp no se ha medido de forma independiente como el de imagen, así que trata el mapeo como inferido por simetría en lugar de confirmado por causa.
- WhatsApp almacena en caché una URL obtenida durante unos 10 minutos. Reenviar la misma URL dentro de esa ventana sirve la primera obtención de nuevo; varía la URL para forzar una nueva.
- Un GIF animado no es un tipo distinto. WhatsApp no tiene un tipo de mensaje gif; un GIF animado que envías llega al destinatario, y te llegaría de vuelta como entrante, como un video ordinario con tipo MIME MP4.
Próximos pasos
- Mensajes de servicio de WhatsApp: la ventana de servicio al cliente y el modelo que comparten todos los mensajes de servicio
- Imágenes: la misma forma para una foto o gráfico
- Audio: para una nota de voz o clip de audio
- Enviar mensajes de WhatsApp: el sobre de la solicitud, el modelo 202 y reintentos seguros
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