Bauen Sie AI WhatsApp -Bots mit reinem Python
Dieser Leitfaden führt Sie durch den Prozess der Erstellung eines WhatsApp -Bots mit der Meta (ehemals Facebook) Cloud -API mit reinem Python und speziellem Flask. Wir werden auch Webhook-Events integrieren, um Nachrichten in Echtzeit zu empfangen und mit OpenAI KI-Antworten zu generieren. Weitere Informationen zur Struktur der Flask -Anwendung finden Sie in dieser Dokumentation.
Voraussetzungen
- Ein Meta -Entwicklerkonto - Wenn Sie keine haben, können Sie hier ein Meta -Entwicklerkonto erstellen.
- Eine Business -App - Wenn Sie keine haben, können Sie hier lernen, eine Business -App zu erstellen. Wenn Sie keine Option zum Erstellen einer Business -App sehen, wählen Sie andere > Weiter > Geschäft .
- Vertrautheit mit Python, um dem Tutorial zu folgen.
Inhaltsverzeichnis
- Bauen Sie AI WhatsApp -Bots mit reinem Python
- Voraussetzungen
- Inhaltsverzeichnis
- Fangen an
- Schritt 1: Wählen Sie Telefonnummern aus
- Schritt 2: Senden Sie Nachrichten mit der API
- Schritt 3: Konfigurieren Sie Webhooks, um Nachrichten zu empfangen
- Starten Sie Ihre App
- Starten Sie Ngrok
- WhatsApp integrieren
- Testen der Integration
- Schritt 4: Verständnis der Webhook -Sicherheit
- Überprüfungsanfragen
- Überprüfungsanfragen validieren
- Validierung von Nutzlasten
- Schritt 5: Erfahren Sie mehr über die API und erstellen Sie Ihre App
- Schritt 6: Integrieren Sie KI in die Anwendung
- Schritt 7: Fügen Sie eine Telefonnummer hinzu
- Datalumina
- Tutorials
Fangen an
- Übersicht & Setup : Beginnen Sie Ihre Reise hier.
- Suchen Sie Ihre Bots : Ihre Bots finden Sie hier.
- WhatsApp -API -Dokumentation : Machen Sie sich mit der offiziellen Dokumentation vertraut.
- Hilfreiche Anleitung : Hier ist ein Python-basierter Leitfaden zum Senden von Nachrichten.
- API -Dokumente zum Senden von Nachrichten : Schauen Sie sich diese Dokumentation an.
Schritt 1: Wählen Sie Telefonnummern aus
- Stellen Sie sicher, dass WhatsApp Ihrer App hinzugefügt wird.
- Sie beginnen mit einer Testnummer, mit der Sie Nachrichten an bis zu 5 Zahlen senden können.
- Gehen Sie zu API -Setup und suchen Sie die Testnummer, aus der Sie Nachrichten senden.
- Hier können Sie auch Zahlen hinzufügen, um Nachrichten zu senden. Geben Sie Ihre eigene WhatsApp -Nummer ein.
- Sie erhalten einen Code auf Ihrem Telefon über WhatsApp, um Ihre Nummer zu überprüfen.
Schritt 2: Senden Sie Nachrichten mit der API
- Erhalten Sie ein 24-Stunden-Zugangs-Token aus dem API-Zugriffsabschnitt.
- Es wird ein Beispiel dafür angezeigt, wie Nachrichten mit einem
curl -Befehl gesendet werden, der vom Terminal oder mit einem Tool wie Postman gesendet werden kann. - Konvertieren wir das in eine Python -Funktion mit der Anforderungsbibliothek.
- Erstellen Sie eine
.env -Dateien basierend auf example.env und aktualisieren Sie die erforderlichen Variablen. Video Beispiel hier. - Sie erhalten eine "Hello World" -Meldung (erwarten Sie eine Verzögerung von 60-120 Sekunden für die Nachricht).
Erstellen eines Zugriffs, der länger funktioniert als 24 Stunden
- Erstellen Sie einen Systembenutzer auf der Ebene von Meta Business Account.
- Konfigurieren Sie auf der Seite der Systembenutzer die Assets für Ihren Systembenutzer und weisen Ihre WhatsApp -App mit vollständiger Kontrolle zu. Vergessen Sie nicht, auf die Schaltfläche "Änderungen speichern" zu klicken.
- Siehe Schritt 1 hier
- Siehe Schritt 2 hier
- Klicken Sie nun auf
Generate new token und wählen Sie die App aus. Wählen Sie dann aus, wie lange das Zugriffstoken gültig ist. Sie können 60 Tage wählen oder niemals ablaufen. - Wählen Sie alle Berechtigungen aus, da ich auf Fehler gestoßen bin, als ich nur die WhatsApp -Auswahl ausgewählt habe.
- Bestätigen und kopieren Sie das Zugriffs -Token.
Jetzt müssen wir die folgenden Informationen im App -Dashboard finden:
- APP_ID : "<Your-WhatsApp-Business-App_id>" (gefunden am App Dashboard)
- App_secret : "<your-WhatsApp-Business-App_secret>" (gefunden am App Dashboard)
- Recicent_waid : "" (Dies ist Ihre WhatsApp -ID, dh Telefonnummer. Stellen Sie sicher, dass es dem Konto hinzugefügt wird, wie in der Beispiel -Testnachricht gezeigt.)
- Version : "V18.0" (die neueste Version der Meta -Graph -API)
- Access_token : "" (im vorherigen Schritt erstellt)
Sie können nur eine Meldung vom Typ Vorlagen als erste Nachricht an einen Benutzer senden. Deshalb müssen Sie zuerst eine Antwort senden, bevor wir fortfahren. Ich habe 2 Stunden gebraucht, um das herauszufinden.
Schritt 3: Konfigurieren Sie Webhooks, um Nachrichten zu empfangen
Bitte beachten Sie, dass dies der schwierigste Teil dieses Tutorials ist.
Starten Sie Ihre App
- Sie haben eine Python -Installation oder -umgebung und installieren Sie die Anforderungen:
pip install -r requirements.txt - Führen Sie Ihre Flask -App lokal aus, indem Sie run.py ausführen
Starten Sie Ngrok
Die folgenden Schritte stammen aus der NGROK -Dokumentation.
Sie benötigen eine statische NGROK -Domäne, da Meta Ihre NGROK -Domäne und Ihr Zertifikat bestätigt!
Sobald Ihre App erfolgreich auf Localhost ausgeführt wird, lassen Sie sie sie mit NGROK sicher im Internet erhalten!
- Wenn Sie noch kein NGROK -Benutzer sind, melden Sie sich einfach kostenlos bei NGROK an.
- Laden Sie den NGROK -Agenten herunter.
- Gehen Sie zum NGROK -Dashboard, klicken Sie auf Ihr Author und kopieren Sie Ihre Authorte.
- Befolgen Sie die Anweisungen, um Ihren NGROK -Agenten zu authentifizieren. Sie müssen dies nur einmal tun.
- Erweitern Sie im linken Menü Cloud Edge und klicken Sie dann auf Domänen.
- Klicken Sie auf der Seite "Domains", Klicken Sie auf Domäne oder + neue Domäne erstellen. (Hier kann jeder mit einer kostenlosen Domain beginnen)
- Starten Sie NGROK, indem Sie den folgenden Befehl in einem Terminal auf Ihrem lokalen Desktop ausführen:
ngrok http 8000 --domain your-domain.ngrok-free.app
- NGROK zeigt eine URL an, bei der Ihre Localhost -Anwendung dem Internet ausgesetzt ist (kopieren Sie diese URL für die Verwendung mit Meta).
WhatsApp integrieren
Gehen Sie im Meta -App -Dashboard zu WhatsApp> Konfiguration und klicken Sie dann auf die Schaltfläche Bearbeiten.
- Geben Sie im Callback-URL-Popup des Webhook-Bearbeitens die vom NGROK-Agent bereitgestellte URL ein, um Ihre Anwendung im Feld Callback-URL mit/webhook am Ende dem Internet auszusetzen (dh https://myexample.ngrok-Free.app/Webhook ).
- Geben Sie einen Bestätigungs -Token ein. Diese Zeichenfolge wird von Ihnen eingerichtet, wenn Sie Ihren Webhook -Endpunkt erstellen. Sie können jede Zeichenfolge auswählen, die Sie mögen. Stellen Sie sicher, dass Sie dies in Ihrer Umgebungsvariablen
VERIFY_TOKEN aktualisieren. - Nachdem Sie WhatsApp ein Webhook hinzugefügt haben, wird WhatsApp über NGROK eine Überprüfungsbeitrag an Ihre Bewerbung einreichen. Bestätigen Sie Ihre Localhost -App empfängt die Validierungs -Get -Anforderung und protokolliert
WEBHOOK_VERIFIED im Terminal. - Zurück zur Konfigurationsseite klicken Sie auf Verwalten.
- Klicken Sie auf dem Webhook Fields Popup auf Abonnieren Sie das Feld "Nachrichten" . Tipp: Sie können mehrere Felder abonnieren.
- Wenn Ihre Flask -App und NGROK ausgeführt werden, können Sie neben Nachrichten auf "Test" klicken, um das Abonnement zu testen. Sie erhalten eine Testmeldung im oberen Fall. Wenn dies der Fall ist, ist Ihr Webhook korrekt eingerichtet.
Testen der Integration
Verwenden Sie die Telefonnummer, die Ihrem WhatsApp -Produkt zugeordnet ist, oder verwenden Sie die zuvor kopierte Testnummer.
- Fügen Sie diese Nummer Ihrer WhatsApp -App -Kontakte hinzu und senden Sie dann eine Nachricht an diese Nummer.
- Bestätigen Sie, dass Ihre Localhost -App eine Nachricht empfängt und sowohl Header als auch Körper im Terminal protokolliert.
- Testen Sie, ob der Bot in Upper Case auf Sie zurückzufordern.
- Sie haben jetzt erfolgreich den Bot integriert! ?
- Jetzt ist es an der Zeit, damit coole Dinge damit akutuell aufzubauen.
Schritt 4: Verständnis der Webhook -Sicherheit
Nachfolgend finden Sie einige Informationen aus den Meta Webhooks -API -Dokumenten zu Überprüfung und Sicherheit. Es ist bereits im Code implementiert, aber Sie können es verweisen, um ein besseres Verständnis dafür zu erhalten, was in Security.py vor sich geht.
Überprüfungsanfragen
Quelle
Immer wenn Sie das Webhooks -Produkt in Ihrem App -Dashboard konfigurieren, senden wir eine GET -Anfrage an Ihre Endpunkt -URL. Die Überprüfungsanforderungen enthalten die folgenden Abfragestnparameter, die am Ende Ihrer Endpunkt -URL angehängt sind. Sie werden ungefähr so aussehen:
GET https://www.your-clever-domain-name.com/webhook?
hub.mode=subscribe&
hub.challenge=1158201444&
hub.verify_token=meatyhamhock
Das Verify_Token, meatyhamhock im Fall dieses Beispiels, ist eine Zeichenfolge, die Sie auswählen können. Es spielt keine Rolle, was es ist, solange Sie in der Umgebungsvariablen VERIFY_TOKEN speichern.
Überprüfungsanfragen validieren
Quelle
Wenn Ihr Endpunkt eine Überprüfungsanforderung erhält, muss er:
- Stellen Sie sicher, dass der Wert von Hub.Verify_Token mit der Zeichenfolge übereinstimmt, die Sie im Feld Verify -Token festlegen, wenn Sie das Webhooks -Produkt in Ihrem App -Dashboard konfigurieren (Sie haben diese Token -Zeichenfolge noch nicht eingerichtet).
- Antworten Sie mit dem Wert von Hub.Challenge.
Validierung von Nutzlasten
Quelle
WhatsApp signiert alle Ereignisbenachrichtigungsnutzlasten mit einer SHA256-Signatur und enthalten die Signatur in den X-Hub-Signature-256-Header der Anforderung, der SHA256 = vorausgeht. Sie müssen die Nutzlast nicht validieren, aber Sie sollten es tun.
Um die Nutzlast zu validieren:
- Generieren Sie eine SHA256 -Signatur mit der Nutzlast und der App Ihrer App geheim.
- Vergleichen Sie Ihre Signatur mit der Signatur in der X-Hub-Signatur-256-Header (alles nach SHA256 =). Wenn die Signaturen übereinstimmen, ist die Nutzlast echt.
Schritt 5: Erfahren Sie mehr über die API und erstellen Sie Ihre App
Überprüfen Sie die Entwicklerdokumentation, um zu erfahren, wie Sie Ihre App erstellen und Nachrichten senden. Siehe Dokumentation.
Schritt 6: Integrieren Sie KI in die Anwendung
Jetzt, da wir eine End -to -End -Verbindung haben, können wir den Bot etwas schlauer machen und uns nur in Upper Case anschreien. Alles, was Sie tun müssen, ist eine eigene Funktion generate_response() in WhatsApp_utils.py.
Wenn Sie möchten, dass ein Cookie Cutter -Beispiel die OpenAI -Assistan -API in ein Abrufwerkzeug integriert, befolgen Sie diese Schritte.
- Sehen Sie sich dieses Video an: OpenAI Assistants Tutorial
- Erstellen Sie Ihren eigenen Assistenten mit OpenAI und aktualisieren Sie Ihre
OPENAI_API_KEY und OPENAI_ASSISTANT_ID in den Umgebungsvariablen. - Stellen Sie Ihrem Assistenten Daten und Anweisungen zur Verfügung
- Aktualisieren Sie Openai_Service.py auf Ihren Anwendungsfall.
- Importieren
generate_reponse in whatsapp_utils.py - Aktualisieren Sie
process_whatsapp_message() mit der neuen Funktion generate_reponse() .
Schritt 7: Fügen Sie eine Telefonnummer hinzu
Wenn Sie bereit sind, Ihre App für einen Produktionsgebrauchsfall zu verwenden, müssen Sie Ihre eigene Telefonnummer verwenden, um Nachrichten an Ihre Benutzer zu senden.
Fügen Sie eine Telefonnummer hinzu, um Nachrichten an eine beliebige WhatsApp -Nummer zu senden. Um Ihre Kontoinformationen und Ihre Telefonnummer zu verwalten, siehe Übersichtsseite. und die WhatsApp -Dokumente.
Wenn Sie eine Nummer verwenden möchten, die bereits in der WhatsApp -Kunden- oder Business -App verwendet wird, müssen Sie diese Nummer vollständig auf die Geschäftsplattform migrieren. Sobald die Nummer migriert ist, verlieren Sie den Zugang zur WhatsApp -Kunden- oder der Business -App. Weitere Informationen finden Sie in einem Geschäftskonto für Informationen.
Sobald Sie Ihre Telefonnummer ausgewählt haben, müssen Sie sie Ihrem WhatsApp -Geschäftskonto hinzufügen. Siehe eine Telefonnummer hinzufügen.
Wenn Sie sich mit WhatsApp Business -API befassen und experimentieren möchten, ohne Ihre persönliche Nummer zu beeinflussen, haben Sie einige Optionen:
- Kaufen Sie eine neue SIM -Karte
- Virtuelle Telefonnummern
- Dual Sim -Telefone
- Verwenden Sie ein anderes Gerät
- Temporäre Zahlendienste
- Spezielle Entwicklungsgeräte für die Entwicklung
Empfehlung : Wenn dies für einen längeren oder professionelleren Zweck gilt, ist es ratsam, einen virtuellen Telefonnummer zu verwenden oder eine neue SIM -Karte für ein dediziertes Gerät zu kaufen. Für schnelle Tests kann eine vorübergehende Zahl ausreichen, aber immer vorsichtig in Bezug auf Sicherheit und Privatsphäre. Denken Sie daran, dass eine Nummer mit der WhatsApp -Business -API zugeordnet ist, sie nur mit regulärem WhatsApp auf einem Gerät verwendet werden kann, es sei denn, Sie deaktivieren sie von der Business -API und verehren sie auf dem Gerät.
Datalumina
Dieses Dokument wird Ihnen von Datalumina zur Verfügung gestellt. Wir helfen Datenanalysten, Ingenieuren und Wissenschaftlern, ein erfolgreiches freiberufliches Geschäft zu starten und zu skalieren - 100.000 US -Dollar pro Jahr, lustige Projekte, zufriedene Kunden. Wenn Sie mehr über das erfahren möchten, was wir tun, können Sie unsere Website besuchen und unseren Newsletter abonnieren. Fühlen Sie sich frei, dieses Dokument mit Ihren Datenfreunden und Kollegen zu teilen.
Tutorials
Für Video -Tutorials finden Sie den YouTube -Kanal: youtube.com/@daveebbelaar.