Sign inGet started

Messages texte WhatsApp

Le texte brut est le type de contenu libre le plus simple : un corps sans pièce jointe, et un aperçu facultatif pour le premier lien qu'il contient.

Envoyer un message texte

Définissez text.body :
const msg = await bird.whatsapp.send({
  to: "+16505551234",
  from: "+13124495648",
  text: { body: "Your driver is 2 minutes away." },
});
console.log(msg.id, msg.status);
La structure complète ajoute preview_url ainsi que les champs que tout envoi libre peut contenir :
Exemple de code
{
  "to": "+16505551234",
  "from": "+13124495648",
  "text": {
    "body": "Your order shipped: https://example.com/track/A1B2C3",
    "preview_url": true
  },
  "in_reply_to_message_id": "wam_01kya19eknftrs2s6p82asmvnh",
  "tags": [{ "name": "category", "value": "shipping" }],
  "metadata": { "order_id": "A1B2C3" }
}
from est requis sur chaque message de service : un numéro appartenant à votre espace de travail, et non un numéro géré par Bird. in_reply_to_message_id cite un message antérieur dans la même conversation ; consultez Citer un message pour savoir ce qu'il résout et ce qu'il peut manquer.

Limites

ChampLimiteAppliquée par
body1 à 4 096 caractèresBird, à l'acceptation (422)
preview_urlbooléen, par défaut falseN/A, informatif
Un body composé uniquement d'espaces passe la validation minLength: 1 du schéma, mais Bird le détecte quand même : un body vide après suppression des espaces est refusé avec 422 E15015 WhatsAppContentRequired. Un corps dépassant 4 096 caractères est refusé avec une simple 422 et aucun code de catalogue dédié.

Lire un message texte entrant

Un message texte entrant contient le même champ text.body, et rien d'autre sur cette branche. Consultez Recevoir des messages texte WhatsApp pour la lecture entrante complète, le payload whatsapp.received, et les points à surveiller.

Limites et cas particuliers

  • La fenêtre de service client doit être ouverte. Le texte brut est un message de service, livrable uniquement dans une fenêtre ouverte ; consultez la fenêtre de service client du hub.
  • preview_url n'affecte que le premier lien, et uniquement ce que le client du destinataire affiche. Sa valeur par défaut est false. Activez-le pour afficher un aperçu de la première URL dans body ; une URL ultérieure dans le même corps n'en reçoit jamais. Si le client du destinataire ne peut pas récupérer d'aperçu pour ce lien, il revient silencieusement à un lien cliquable simple. Rien à la lecture ne vous indique si un aperçu a réellement été affiché.
  • Le markdown WhatsApp est un rendu du client du destinataire pour body, pas une partie du contrat API. Bird transmet body tel quel ; il ne valide, ne supprime ni n'encode *bold*, _italic_, ~strikethrough~, ni le monospace à triple backtick. L'affichage de ces marqueurs dépend entièrement du client qui ouvre le message.
  • Un body entrant n'est pas garanti non vide, malgré ce qu'indique le schéma de lecture. Meta peut signaler un message entrant comme "text": {} ou avec un body vide, et Bird le stocke tel quel au lieu de générer un substitut. C'est un écart connu et ouvert : n'écrivez pas un consommateur qui fait confiance au required: body du schéma ici.

Étapes suivantes