Sign inGet started

WhatsApp platte-tekstberichten

Platte tekst is de eenvoudigste vrijevorm-inhoudsvariant: een body zonder bijlage, en een optionele preview voor de eerste link erin.

Een tekstbericht versturen

Stel text.body in:
const msg = await bird.whatsapp.send({
  to: "+16505551234",
  from: "+13124495648",
  text: { body: "Your driver is 2 minutes away." },
});
console.log(msg.id, msg.status);
De volledige structuur voegt preview_url toe, plus de velden die elke vrijevorm-verzending kan bevatten:
Codevoorbeeld
{
  "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 is verplicht bij elk servicebericht: een nummer dat je werkruimte bezit, niet een door Bird beheerd nummer. in_reply_to_message_id citeert een eerder bericht in hetzelfde gesprek; zie Een bericht citeren voor waartegen het wordt opgelost en wat het kan missen.

Limieten

VeldGrensAfgedwongen door
body1 tot 4096 tekensBird, bij acceptatie (422)
preview_urlboolean, standaard falseN.v.t., informatief
Een body die alleen witruimte bevat, doorstaat de eigen minLength: 1 van het schema, maar Bird vangt het alsnog af: een body die na trimmen leeg is, wordt geweigerd met 422 E15015 WhatsAppContentRequired. Een body van meer dan 4096 tekens wordt geweigerd met een gewone 422 en zonder specifieke cataloguscode.

Een inkomend tekstbericht lezen

Een inkomend tekstbericht bevat hetzelfde text.body-veld, en verder niets op de variant. Zie WhatsApp-tekstberichten ontvangen voor het volledige inkomende leesformaat, de whatsapp.received-payload, en waar je op moet letten.

Limieten en randgevallen

  • Het klantenservicevenster moet open zijn. Platte tekst is een servicebericht, alleen afleverbaar binnen een open venster; zie het klantenservicevenster van de hub.
  • preview_url beïnvloedt alleen de eerste link, en alleen wat de client van de ontvanger rendert. De standaardwaarde is false. Stel het in om een preview van de eerste URL in body te tonen; een latere URL in dezelfde body krijgt er nooit een. Als de client van de ontvanger geen preview voor die link kan ophalen, valt het stilletjes terug op een gewone klikbare link. Niets bij het lezen vertelt je of er daadwerkelijk een preview is gerenderd.
  • WhatsApp-markdown is de client van de ontvanger die body rendert, geen onderdeel van het API-contract. Bird geeft body ongewijzigd door; het valideert, stript of encodeert geen *bold*, _italic_, ~strikethrough~ of triple-backtick monospace. Of die markers renderen hangt volledig af van de client die het bericht opent.
  • Een inkomend body is niet gegarandeerd niet-leeg, ondanks wat het leesschema zegt. Meta kan een inkomend bericht rapporteren als "text": {} of met een lege body, en Bird slaat het letterlijk op in plaats van een placeholder te genereren. Dit is een bekend, open hiaat: schrijf geen consumer die hier op de required: body van het schema vertrouwt.

Volgende stappen