Messages image WhatsApp
Un message image contient une URL publique que WhatsApp récupère au moment de l'envoi, avec une légende facultative en dessous.
Envoyer une image
Définissez image.url :
const msg = await bird.whatsapp.send({
to: "+16505551234",
from: "+13124495648",
image: { url: "https://cdn.example.com/receipt.png" },
});
console.log(msg.id, msg.status);msg = client.whatsapp.send(
to="+16505551234",
from_="+13124495648",
image={"url": "https://cdn.example.com/receipt.png"},
)
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",
Image: &bird.WhatsAppImageSend{Url: "https://cdn.example.com/receipt.png"},
})
if err != nil {
log.Fatal(err)
}
fmt.Println(msg.Id, *msg.Status)
}$image = (new WhatsAppMessageSendRequestImage())
->setUrl('https://cdn.example.com/receipt.png');
$message = $bird->whatsapp->send(
to: '+16505551234',
from: '+13124495648',
image: $image,
);
echo $message->getId(), ' ', $message->getStatus();bird whatsapp send \
--from +13124495648 \
--image https://cdn.example.com/receipt.png \
--to +16505551234{
"name": "whatsapp_send",
"arguments": {
"from": "+13124495648",
"image": {
"url": "https://cdn.example.com/receipt.png"
},
"to": "+16505551234"
}
}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",
"image": {
"url": "https://cdn.example.com/receipt.png"
}
}'La forme complète ajoute un caption facultatif :
Exemple de code
{
"to": "+16505551234",
"from": "+13124495648",
"image": {
"url": "https://cdn.example.com/receipts/a1b2c3.png",
"caption": "Your receipt for order A1B2C3"
}
}image n'a pas de champ filename. from est obligatoire sur chaque message de service : un numéro appartenant à votre espace de travail, pas un numéro géré par Bird.
Limites
| Champ | Limite | Appliquée par |
|---|---|---|
| Taille du fichier | 5 Mo | WhatsApp uniquement, à la récupération (async) |
| Type de fichier | JPEG ou PNG | WhatsApp uniquement, à la récupération (async) |
| caption | jusqu'à 1 024 caractères | Bird, à l'acceptation (422) |
| url | absolue, https, possède un hôte, pas d'espace brut | Bird, à l'acceptation (422) |
Bird vérifie la forme de l'URL et la longueur de la légende avant toute mise en file d'attente. Il ne vérifie pas la taille ni le type réels du fichier ; seule la récupération par WhatsApp au moment de l'envoi le peut. Consultez la page du hub envoyer un média par URL pour le détail de cette vérification de forme, et quand un média échoue pour ce qui se passe quand la récupération par WhatsApp rejette le fichier.
Lire une image entrante
Une image entrante contient le même objet image, plus un id et un mime_type que Bird a appris en récupérant le fichier. Les deux sont absents lors d'une relecture sortante, car Bird n'a jamais récupéré le fichier qu'il a envoyé. Consultez Recevoir des images WhatsApp pour la lecture entrante complète, le payload whatsapp.received, et les points à surveiller.
Limites et modes d'échec
- La fenêtre de service client doit être ouverte. Les images sont des messages de service, distribuables uniquement dans une fenêtre ouverte ; consultez la page du hub fenêtre de service client.
- Bird rejette http ; WhatsApp lui-même le récupérerait. Cette distinction, ainsi que le reste de la vérification de forme de l'URL, se trouvent sur la page du hub envoyer un média par URL.
- Un fichier trop volumineux, un type MIME incorrect ou une URL inaccessible échouent tous de la même manière, et après facturation. Consultez la page du hub quand un média échoue pour media_rejected et le fait que l'envoi est facturé même en cas d'échec.
- WhatsApp met en cache une URL récupérée pendant environ 10 minutes. Renvoyer la même URL dans cet intervalle resert la première récupération au lieu de récupérer à nouveau ; modifiez l'URL (un paramètre de requête, par exemple) pour forcer une nouvelle récupération.
Étapes suivantes
- Messages de service WhatsApp : la fenêtre de service client et le modèle commun à tous les messages de service
- Vidéo : la même structure pour un clip vidéo
- Documents : pour un PDF, un tableur ou un autre fichier
- Envoyer des messages WhatsApp : l'enveloppe de requête, le modèle 202, et les réessais sûrs
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