WhatsApp mit Node.js senden und empfangen
Der Empfang erfolgt über eine Route, die den GET zur Meta-Verifizierung beantwortet und POSTs akzeptiert. Zum Senden dient ein fetch-Aufruf an die Cloud API mit der phone number id und dem Token der Nummer. Es gibt kein SDK von uns und nichts zu installieren.
Ein GET für Metas Verifizierung und ein POST für Events.
Zeitfenster nach einer Nachricht des Kunden, in dem Freitext gesendet werden kann.
Der Fehler, der beim Senden von Freitext außerhalb dieses Zeitfensters zurückgegeben wird.
Wie empfangen Sie Nachrichten in Node?
Eine Route mit zwei Methoden, in Express, Fastify, einem Next-Route-Handler oder einem einfachen Server.
Der GET beantwortet Metas Verifizierung: Lesen Sie hub.mode, hub.verify_token und hub.challenge aus der Anfrage aus, vergleichen Sie das Token mit Ihrem und geben Sie die Challenge als Klartext zurück. Wenn Sie sie als JSON zurückgeben, ist das der typische Fehler: Der Endpoint empfängt nie etwas, obwohl er korrekt aussieht.
Der POST empfängt Events. Antworten Sie sofort mit 200 und verarbeiten Sie die Daten danach. Meta wiederholt jede langsame Anfrage, und ein Handler, der seine Arbeit vor der Antwort erledigt, sieht dieselbe Nachricht mehr als einmal. Besonders bei Serverless sorgt zuerst die Antwort und danach das Einreihen der Arbeit dafür, dass ein Cold Start keine Duplikate erzeugt.
Wie senden Sie?
Ein fetch-Aufruf an den messages endpoint der Cloud API für die phone number id, mit dem Token als Bearer-Header.
Nichts daran ist spezifisch für uns. Die Anfrage entspricht daher exakt Metas eigener Dokumentation, ohne Wrapper, den Sie lernen müssten oder an den Sie gebunden wären. Beide Werte stehen im Dashboard, und get_api_credentials gibt sie über den MCP-Connector zurück, wenn ein Assistent die Verbindung einrichtet.
Der Body hängt vom Zeitpunkt ab. Innerhalb von 24 Stunden nach der letzten eingehenden Nachricht des Kunden senden Sie ein text object. Danach senden Sie ein template object mit einem genehmigten Template-Namen und der Sprache. Code, der nur Text sendet, besteht jeden Test und scheitert bei der ersten Nachricht, die über Nacht eintrifft.
Was ist bei Serverless anders?
Zwei Dinge, und bei beiden endet die Funktion, bevor die Arbeit abgeschlossen ist.
Eine Antwort mit 200 und die anschließende Verarbeitung funktionieren nicht, wenn eine Funktion genau beim Antworten pausiert. Nutzen Sie die Option Ihrer Plattform, die Arbeit nach der Antwort am Leben zu halten, oder legen Sie die Payload in eine Queue und lassen Sie sie von einer separaten Funktion verarbeiten. Meta braucht die Bestätigung schnell, nicht die abgeschlossene Verarbeitung.
Cold Starts machen langsame Antworten wahrscheinlicher, was zu mehr Wiederholungen und Duplikaten führt. Die Deduplizierung anhand der wamid message id ist in diesem Modell unverzichtbar. Sie macht die Verarbeitung zuverlässig.
Häufige Fehler
- Die Challenge als JSON statt als unveränderten Body zurückgeben.
- Die Arbeit vor der Antwort mit 200 erledigen. Bei Serverless kann die Funktion genau beim Antworten pausieren.
- Die Deduplizierung überspringen. Meta wiederholt Anfragen absichtlich, und Duplikate sind normal, kein Sonderfall.
Verbinden Sie die Nummer auf easycoexistence.com, setzen Sie das Webhook-Ziel auf Ihre Route und lesen Sie phone number id und Token aus dem Dashboard. Ab US$ 9 pro Nummer und Monat, bei größeren Mengen bis auf US$ 2 sinkend, mit 7 Tagen kostenloser Testphase.
Häufig gestellte Fragen
Brauche ich eine Bibliothek?
Nein. Eine Route und fetch reichen aus, und der Aufruf entspricht exakt Metas Dokumentation.
Funktioniert das mit Vercel oder Lambda?
Ja, mit dem üblichen Hinweis für Serverless: Bestätigen Sie zuerst und verarbeiten Sie danach über eine Queue oder einen Hintergrundmechanismus statt inline.
Wie prüfe ich, ob die Anfrage von Meta stammt?
Prüfen Sie den Signatur-Header gegen das App-Secret. Das lohnt sich, sobald der Endpoint öffentlich ist.
Kann ich TypeScript verwenden?
Ja. Von uns gibt es nichts, wogegen Sie typisieren müssten, da die Payload von Meta stammt und von Meta dokumentiert ist.
Weiterlesen
Bereit für den Start?
Richten Sie WhatsApp Coexistence in wenigen Minuten statt Monaten ein. Die App funktioniert weiterhin auf dem Telefon.
Kostenlose Testphase startenVerifiziert am