WhatsApp Klartextnachrichten
Klartext ist der einfachste Freitext-Inhaltstyp: ein Text ohne Anhang und eine optionale Vorschau für den ersten darin enthaltenen Link.
Textnachricht senden
Setzen Sie 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);msg = client.whatsapp.send(
to="+16505551234",
from_="+13124495648",
text={"body": "Your driver is 2 minutes away."},
)
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",
Text: &bird.WhatsAppTextSend{Body: "Your driver is 2 minutes away."},
})
if err != nil {
log.Fatal(err)
}
fmt.Println(msg.Id, *msg.Status)
}$text = (new WhatsAppMessageSendRequestText())
->setBody('Your driver is 2 minutes away.');
$message = $bird->whatsapp->send(
to: '+16505551234',
from: '+13124495648',
text: $text,
);
echo $message->getId(), ' ', $message->getStatus();bird whatsapp send \
--from +13124495648 \
--text 'Your driver is 2 minutes away.' \
--to +16505551234curl -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",
"text": {
"body": "Your driver is 2 minutes away."
}
}'Die vollständige Struktur ergänzt preview_url um die Felder, die jeder Freitext-Versand mitführen kann:
{
"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 ist bei jeder Servicenachricht erforderlich: eine Nummer, die Ihrem Workspace gehört, keine von Bird verwaltete. in_reply_to_message_id zitiert eine frühere Nachricht in derselben Konversation; siehe Eine Nachricht zitieren für Details, wogegen aufgelöst wird und was fehlen kann.
Limits
| Feld | Grenzwert | Erzwungen durch |
|---|---|---|
body | 1 bis 4096 Zeichen | Bird, bei Annahme (422) |
preview_url | Boolean, Standardwert false | N/A, informativ |
Ein body, das nur Leerzeichen enthält, besteht die eigene minLength: 1 des Schemas, aber Bird fängt es trotzdem ab: Ein body, das nach dem Trimmen leer ist, wird mit 422 E15015 WhatsAppContentRequired abgelehnt. Ein Text über 4096 Zeichen wird mit einem einfachen 422 und ohne eigenen Katalogcode abgelehnt.
Eingehende Textnachricht lesen
Eine eingehende Textnachricht enthält dasselbe text.body-Feld und sonst nichts an diesem Inhaltstyp. Siehe WhatsApp-Textnachrichten empfangen für den vollständigen eingehenden Lesevorgang, die whatsapp.received-Payload und worauf Sie achten sollten.
Limits und Sonderfälle
- Das Kundenservice-Fenster muss offen sein. Klartext ist eine Servicenachricht und kann nur innerhalb eines offenen Fensters zugestellt werden; siehe das Kundenservice-Fenster des Hubs.
preview_urlbetrifft nur den ersten Link und nur das, was der Client des Empfängers rendert. Der Standardwert istfalse. Setzen Sie es, um eine Vorschau der ersten URL inbodyanzuzeigen; eine spätere URL im selben Text erhält keine. Wenn der Client des Empfängers keine Vorschau für diesen Link abrufen kann, fällt er stillschweigend auf einen klickbaren Klartext-Link zurück. Beim Lesen erfahren Sie nicht, ob eine Vorschau tatsächlich gerendert wurde.- WhatsApp-Markdown ist das Rendering durch den Client des Empfängers von
body, nicht Teil des API-Vertrags. Bird reichtbodyunverändert durch; es validiert, entfernt oder kodiert weder*bold*,_italic_,~strikethrough~noch Triple-Backtick-Monospace. Ob diese Marker gerendert werden, hängt ausschließlich vom Client ab, der die Nachricht öffnet. - Ein eingehendes
bodyist nicht garantiert nicht-leer, auch wenn das Leseschema das aussagt. Meta kann eine eingehende Nachricht als"text": {}oder mit einem leerenbodymelden, und Bird speichert sie wortgetreu, statt einen Platzhalter zu erzeugen. Das ist eine bekannte, offene Lücke: Schreiben Sie keinen Consumer, der sich hier aufrequired: bodydes Schemas verlässt.
Nächste Schritte
- WhatsApp-Servicenachrichten: das Kundenservice-Fenster und das Modell, das alle Servicenachrichten gemeinsam haben
- WhatsApp-Nachrichten senden: der Request-Envelope, das
202-Modell und sichere Wiederholungsversuche - Interaktive Nachrichten: wenn Sie statt einer getippten Antwort ein Antippen wünschen
Verwandte Ressourcen
Weiter mit der Dokumentation, Anleitungen und Beispielen zu diesem Thema.