Zum Hauptinhalt springen

WhatsApp Smart-Home-Integration, kostenlos und Open Source

WhatsApp-Integration für Gladys Assistant

Chatten Sie mit Gladys auf WhatsApp über die offizielle WhatsApp Business Cloud API.

Überblick​

Chatten Sie mit Gladys auf WhatsApp, über die offizielle WhatsApp Business Cloud API von Meta. Jeder Gladys-Benutzer verknüpft seine WhatsApp-Nummer; seine Nachrichten erreichen Gladys, die ihm auf WhatsApp antwortet und ihm dort ihre Benachrichtigungen sendet. Szenen können auf empfangene Nachrichten reagieren (Schaltflächen von Vorlagen, Standorte …) und genehmigte Nachrichtenvorlagen senden.

Die Integration nutzt die Cloud von Meta (graph.facebook.com): Die mit Gladys ausgetauschten Texte verlassen Ihr lokales Netzwerk. Zum Empfangen von Nachrichten ist Gladys Plus nötig, das Meta eine öffentliche HTTPS-Adresse bereitstellt; ohne Gladys Plus kann Gladys nur senden.

Voraussetzungen​

  • Gladys Assistant 5.1.0 oder neuer.
  • Eine Meta-App vom Typ Business mit dem Produkt WhatsApp und eine geschäftliche Telefonnummer. Die von Meta bereitgestellte Testnummer funktioniert auch, erreicht aber nur die 5 unter WhatsApp → API-Einrichtung registrierten Nummern.
  • Ein Systembenutzer (Unternehmenseinstellungen → Benutzer → Systembenutzer), dem die App und das WhatsApp-Konto zugewiesen sind, mit einem Token ohne Ablauf und den Berechtigungen whatsapp_business_messaging und whatsapp_business_management. Das temporäre Token der API-Einrichtung läuft nach 24 Stunden ab.
  • Gladys Plus, um Nachrichten zu empfangen.
  • Meta rechnet die Nachrichten eines Unternehmens nach seiner Preisliste ab (insbesondere Vorlagen außerhalb des 24-Stunden-Fensters).

Konfiguration​

FeldWas einzugeben ist
Telefonnummer-IDDie unter WhatsApp → API-Einrichtung angezeigte ID (nicht die Nummer)
ZugriffstokenDas dauerhafte Token des Systembenutzers
ID des WhatsApp-Business-KontosOptional: Damit registriert die Integration ihren Webhook bei Meta und listet Ihre Vorlagen
VerifizierungstokenLeer lassen: Die Integration erzeugt es; bei Meta einfügen
Webhook registrierenStandardmäßig an: Der Webhook des Kontos folgt der Gladys-Plus-URL
ErsatzvorlageName einer genehmigten Vorlage mit einer Variablen im Text, z. B. gladys_notification
Sprache der VorlageIhr Sprachcode wie im WhatsApp Manager: en_US, fr, de, es …
Empfangene Nachrichten als gelesen markierenBlaue Häkchen für den Absender
Sprache der AntwortenSprache der Antworten, bevor eine Nummer verknüpft ist

Nachrichten empfangen: Speichern Sie im Block Gladys-Plus-Webhooks Ihren Open-API-Schlüssel (Gladys Plus → Einstellungen → Open API). Danach erscheint die Webhook-URL. Öffnen Sie in der Meta-App WhatsApp → Konfiguration, fügen Sie diese URL als Callback-URL und das Verifizierungstoken der Integration als Verifizierungstoken ein und abonnieren Sie das Feld messages. Ist die ID des WhatsApp-Business-Kontos eingetragen, richtet die Integration den Webhook des Kontos außerdem selbst auf diese URL aus, erneut bei jeder Änderung der URL (die Schaltfläche Webhook registrieren tut es auf Anfrage).

Das 24-Stunden-Fenster: WhatsApp erlaubt einem Unternehmen freien Text nur innerhalb von 24 Stunden nach der letzten Nachricht des Nutzers. Legen Sie im WhatsApp Manager eine Vorlage an (Kategorie Utility, eine Variable im Text, z. B. Gladys: {{1}}), warten Sie auf die Genehmigung und geben Sie ihren Namen ein: Außerhalb des Fensters sendet Gladys ihre Nachrichten darüber. Ohne Vorlage lehnt Meta diese Nachrichten ab.

Verwendung​

Nummer verknüpfen: Auf der Konfigurationsseite Mein Konto verknüpfen → einen Code erzeugen und diesen Code innerhalb von 15 Minuten auf WhatsApp an die geschäftliche Nummer senden. Gladys antwortet, dass Ihr Konto verknüpft ist. Schreiben Sie Gladys dann wie im Chat von Gladys.

Ohne Gladys Plus verwenden Sie die Schaltfläche Nummer ohne Gladys Plus verknüpfen: Geben Sie Ihre Nummer (internationales Format) und den Code ein. Gladys sendet Ihnen dann ihre Benachrichtigungen über die Ersatzvorlage; Ihre Nachrichten erreichen Gladys nicht.

Textnachrichten, getippte Schaltflächen und Bildunterschriften gehen an Gladys. Sprachnachrichten, Sticker und andere Medien erhalten die Antwort „Gladys liest vorerst nur Textnachrichten“. Nachrichten nicht verknüpfter Nummern werden ohne Antwort ignoriert.

Dashboard-Widget: Das Widget WhatsApp zeigt den verifizierten Namen der Nummer, ihre Qualitätsbewertung und ihr Sendelimit, die seit Mitternacht (UTC) gesendeten, empfangenen und fehlgeschlagenen Nachrichten, den Status der Nummer bei Meta, den Zustand des Empfangs, das letzte Ereignis von Meta und die Zahl der verknüpften Kontakte.

Das WhatsApp-Widget (generierte Illustration, kein Screenshot)

Szenen:

  • Auslöser WhatsApp-Nachricht empfangen: Filter nach Nachrichtentyp, Nutzlast einer Schaltfläche, genauem Text. Variablen: from, contact_name, user, message_type, text, payload, latitude, longitude, emoji, message_id.
  • Auslöser WhatsApp-Nachricht nicht zugestellt: der erste Fehler für eine Nummer, danach erst wieder, nachdem eine Nachricht durchgegangen ist (eine Szene, die Sie über WhatsApp warnt, kann keine Schleife bilden). Variablen: to, reason, error_code, error_title, message_id.
  • Aktion WhatsApp-Vorlage senden: Empfänger (leer: alle verknüpften Kontakte), Name der Vorlage, Sprache, durch | getrennte Parameter (oder name=wert für benannte Parameter). Szenenvariablen funktionieren in jedem Feld.

Beispiele: Wenn die Vorlagen-Schaltfläche mit der Nutzlast OPEN_GATE getippt wird → das Tor öffnen; wenn die Alarmanlage auslöst → die Vorlage alarm_alert an alle senden; wenn eine Nachricht wegen des Tokens nicht zugestellt wird → eine E-Mail senden.

Fehlerbehebung​

  • Verbindung testen zeigt Name, Qualität und Status der Nummer und ob der Empfang funktioniert.
  • „Meta hat das Zugriffstoken abgelehnt“: Das Token ist abgelaufen (temporäres Token) oder wurde widerrufen. Erzeugen Sie ein dauerhaftes Token für den Systembenutzer.
  • Nichts kommt in Gladys an: Prüfen Sie, ob Gladys Plus verknüpft und der Open-API-Schlüssel gespeichert ist, ob URL und Verifizierungstoken bei Meta eingefügt sind und ob das Feld messages abonniert ist. Das Widget zeigt „wartet auf Meta“ bis zum ersten Ereignis.
  • Nachricht nicht zugestellt, außerhalb des Fensters (131047): Richten Sie eine genehmigte Ersatzvorlage ein.
  • Nummer nicht zugelassen (131030): Fügen Sie bei der Testnummer von Meta den Empfänger unter WhatsApp → API-Einrichtung hinzu.
  • Vorlage abgelehnt (132000, 132001): Prüfen Sie Name, Sprachcode und Anzahl der Parameter.
  • Drücken Sie Diagnose und kopieren Sie die Zeilen, die mit „WhatsApp diagnostic“ beginnen, aus dem Tab Protokolle in ein GitHub-Issue: Token, Open-API-Schlüssel und Nummern sind entfernt oder maskiert.

Konfigurationseinstellungen​

Diese Einstellungen fragt WhatsApp in seinem Konfigurationsbildschirm in Gladys ab.

EinstellungTypPflichtfeldBeschreibung
WhatsApp-Business-Konto verbindensectionNein1. Erstellen Sie eine Meta-App vom Typ Business und fügen Sie das Produkt WhatsApp hinzu. 2. Kopieren Sie unter WhatsApp → API-Einrichtung die Telefonnummer-ID und die ID des WhatsApp-Business-Kontos. 3. Legen Sie in den Unternehmenseinstellungen einen Systembenutzer an, weisen Sie ihm die App und das WhatsApp-Konto zu und erzeugen Sie ein Token ohne Ablauf mit den Berechtigungen whatsapp_business_messaging und whatsapp_business_management.
Telefonnummer-IDstringJaDie ID der geschäftlichen Telefonnummer unter WhatsApp → API-Einrichtung (nicht die Nummer selbst).
ZugriffstokensecretJaDauerhaftes Token des Systembenutzers. Das temporäre Token der API-Einrichtung läuft nach 24 Stunden ab. Wird verschlüsselt gespeichert und nie wieder angezeigt.
ID des WhatsApp-Business-KontosstringNeinOptional. Damit richtet die Integration den Webhook des Kontos selbst auf Gladys Plus aus, und die Diagnose listet Ihre Nachrichtenvorlagen auf.
Nachrichten empfangen (Gladys Plus)sectionNeinMeta stellt die Nachrichten an eine öffentliche HTTPS-Adresse zu: Gladys Plus stellt sie bereit. Speichern Sie Ihren Open-API-Schlüssel im Block „Gladys-Plus-Webhooks“ unten, fügen Sie dann in der Meta-App (WhatsApp → Konfiguration) die dort angezeigte Webhook-URL als Callback-URL und das Verifizierungstoken unten ein und abonnieren Sie das Feld „messages“. Ohne Gladys Plus kann Gladys nur senden.
VerifizierungstokenstringNeinWird von der Integration erzeugt, wenn es leer ist. Fügen Sie denselben Wert in der Meta-App ein (WhatsApp → Konfiguration → Verifizierungstoken).
Webhook automatisch bei Meta registrierenbooleanNeinErfordert die ID des WhatsApp-Business-Kontos. Wird bei jeder Änderung der Gladys-Plus-URL wiederholt.
Außerhalb des 24-Stunden-FensterssectionNeinWhatsApp erlaubt einem Unternehmen freien Text nur innerhalb von 24 Stunden nach der letzten Nachricht des Nutzers. Danach kommt nur eine genehmigte Nachrichtenvorlage durch. Legen Sie eine Vorlage der Kategorie Utility mit einer einzigen Variablen im Text an, z. B. „Gladys: {{1}}“, und geben Sie ihren Namen unten ein: Gladys sendet ihre Benachrichtigungen dann darüber.
ErsatzvorlagestringNeinName der genehmigten Vorlage (Kleinbuchstaben, Ziffern, Unterstriche). Leer: Nachrichten außerhalb des Fensters werden nicht zugestellt.
Sprache der VorlagestringNeinSprachcode der Vorlage wie im WhatsApp Manager: en_US, fr, de, es …
Empfangene Nachrichten als gelesen markierenbooleanNeinDer Absender sieht die blauen Häkchen, sobald Gladys die Nachricht hat.
Sprache der AntwortenselectNeinSprache der wenigen Antworten, die die Integration selbst sendet, bevor eine Nummer verknüpft ist (Verknüpfungscode angenommen oder abgelehnt).

So installierst du WhatsApp in Gladys​

  1. Öffne in Gladys Integrationen: WhatsApp erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
  2. Klicke auf Installieren. Gladys lädt das Docker-Image (ghcr.io/william-de71/gladys-whatsapp:0.1.0) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration).
  3. Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
  4. Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/William-De71/gladys-whatsapp.

WhatsApp benötigt Gladys >=5.1.0. Der Katalog in Gladys wird stündlich aktualisiert, eine neue Version ist also spätestens eine Stunde nach ihrer Veröffentlichung verfügbar.

Du nutzt Gladys noch nicht? Es ist kostenlos und Open Source: folge der Installationsanleitung, um loszulegen.

Über externe Integrationen​

WhatsApp ist eine externe Integration: eine Community-Integration, die als Docker-Container verpackt und auf GitHub veröffentlicht wird. Gladys installiert sie mit einem Klick und führt sie in einer vom Kern isolierten Sandbox aus. Sie wird von William-De71 veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.

Abonniere den Newsletter von Gladys Assistant

Ein paar E-Mails im Monat zu neuen Releases und Neuigkeiten aus dem Projekt. Verschickt von Pierre-Gilles Leymarie, dem Gründer des Projekts. Jederzeit abbestellbar 🙂