Mensagens de vídeo no WhatsApp
Uma mensagem de vídeo carrega uma URL pública que o WhatsApp busca no momento do envio, com uma legenda opcional abaixo dela.
Enviar um vídeo
Defina 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"
}
}'A forma completa adiciona um caption opcional:
Exemplo de código
{
"to": "+16505551234",
"from": "+13124495648",
"video": {
"url": "https://cdn.example.com/unboxing.mp4",
"caption": "How to set it up"
}
}video não tem o campo filename. from é obrigatório em toda mensagem de serviço: um número que seu espaço de trabalho possui, não um gerenciado pelo Bird.
Limites
| Campo | Limite | Aplicado por |
|---|---|---|
| Tamanho do arquivo | 16 MB | apenas WhatsApp, no fetch (async) |
| Formato | Container MP4, vídeo H.264, áudio AAC | apenas WhatsApp, no fetch (async) |
| caption | até 1.024 caracteres | Bird, no accept (422) |
| url | absoluta, https, com host, sem espaço bruto | Bird, no accept (422) |
Bird verifica o formato da URL e o comprimento da legenda antes de qualquer enfileiramento. Não verifica o tamanho real do arquivo, o container ou o codec; apenas o fetch do próprio WhatsApp no momento do envio pode fazer isso. Consulte envio de mídia por URL e quando a mídia falha no hub.
Lendo um vídeo recebido
Um vídeo recebido carrega o mesmo objeto video, mais um id e mime_type que Bird aprendeu ao buscar o arquivo. Ambos estão ausentes em uma releitura de saída, já que Bird nunca buscou o arquivo que enviou. Consulte Recebendo vídeo no WhatsApp para a leitura completa de entrada, o payload whatsapp.received e o que observar.
Limites e modos de falha
- A janela de atendimento ao cliente precisa estar aberta. Vídeo é uma mensagem de serviço, entregável apenas dentro de uma janela aberta; consulte a janela de atendimento ao cliente no hub.
- Bird rejeita http; o próprio WhatsApp faria o fetch. Consulte envio de mídia por URL no hub para a verificação completa de formato.
- Um fetch rejeitado ainda é cobrado. Consulte quando a mídia falha no hub para media_rejected e o fato da cobrança em caso de falha. O texto de rejeição de vídeo do WhatsApp não foi medido de forma independente como o de imagem, então trate o mapeamento como inferido por simetria, e não confirmado por causa.
- WhatsApp armazena em cache uma URL buscada por cerca de 10 minutos. Reenviar a mesma URL dentro dessa janela re-serve o primeiro fetch; altere a URL para forçar um novo.
- Um GIF animado não é um tipo distinto. WhatsApp não tem um tipo de mensagem gif; um GIF animado que você envia chega ao destinatário, e chegaria de volta para você como recebido, como um video comum com tipo MIME MP4.
Próximos passos
- Mensagens de serviço no WhatsApp: a janela de atendimento ao cliente e o modelo que toda mensagem de serviço compartilha
- Imagens: o mesmo formato para uma foto ou gráfico
- Áudio: para uma nota de voz ou clipe de áudio
- Enviando mensagens no WhatsApp: o envelope da solicitação, o modelo 202 e tentativas seguras de reenvio
Recursos relacionados
Continue com a documentação, guias e exemplos sobre este tópico. Os recursos estão em inglês.
Assista ao guiaConnecting WhatsApp to Bird: from buying a number to a live channelEntenda o conceitoWhat is the 24-hour customer service window on WhatsApp?Use a ferramentaWhatsApp message builderExplore a funcionalidadeWhatsApp
Experimente na prática e obtenha um resumo de implementação