WhatsApp Nachrichten mit Python versenden
Für viele Programmierprojekte kann es hilfreich sein, wenn man Zwischenergebnisse, Status-Nachrichten oder sonstige Mitteilungen direkt an ein Smartphone übermitteln kann. Es gibt diverse Third-Party Libraries die man dafür nutzen kann, allerdings basieren diese oft auf kostenpflichtigen Dienstleistungen für z.B. SMTP Server (Mail-Versand), Messaging Dienste (SMS) oder andere.
Glücklicherweise gibt es auch hier eine kostenlose Variante. Mit dem Modul pywhatkit (https://pypi.org/project/pywhatkit/) kann man Whatsapp ganz einfach automatisieren. Damit das funktioniert, muss das Gerät wo der Python-Code läuft über WhatsappWeb mit dem privaten Whatsapp Konto verbunden werden. Die nötigen Schritte sollen in diesem Artikel kurz beschrieben werden.
WhatsappWeb verbinden mit dem privaten Whatsapp Konto
- WhatsappWeb Website öffnen: https://web.whatsapp.com/
- WhatsApp auf dem Smartphone öffnen
- In WhatsApp unter “Einstellungen – Verknüpfte Geräte – Gerät hinzufügen”
- QR Code der WhatsApp Web Seite scannen
- Warten bis die Verbindung aufgebaut wurde
Der Browser bleibt so verbunden mit der Smartphone App. Falls diese Verbindung aufgehoben werden soll, so kann dies jederzeit unter “Einstellungen – Verknüpfte Geräte” wieder gestoppt werden.
Installation pywhatkit
Die Installation ist sehr simpel über die Kommandozeile mit dem folgenden Befehl zu erreichen.
python3 -m pip install pywhatkit
Nachrichtenversand mit pywhatkit
Versand an eine WhatsApp Gruppe
Um Nachrichten an eine Gruppe zu versenden muss in WhatsApp zuerst in den Gruppeneinstellungen die Gruppen-ID herausgefunden werden. Dazu wählt man in den Gruppeneinstellungen “Mit Link zur Gruppe einladen”. Die ID am Ende der angezeigten URL (gelb markiert im Bild) ist die Gruppen-ID:
Es braucht keine weiteren Konfigurationsschritte und man kann nun mit nur einer Zeile Code eine Nachricht absetzen.
import pywhatkit
# WhatsApp Nachricht "Hello World!" an die Gruppe mit ID <<GRUPPEN-ID>> um 12:10 Uhr,
# dann soll 10 Sekunden gewartet werden
# und nach weiteren 5 Sekunden soll WhatsappWeb geschlossen werden.
pywhatkit.sendwhatmsg_to_group("<<GRUPPEN-ID>>", "Hello World!", 12, 10, 10, 5)
# WhatsApp Nachricht "Hello World!" nach 10 Sekunden Wartezeit an die Gruppe mit ID <<GRUPPEN-ID>>
# und nach weiteren 5 Sekunden soll WhatsappWeb wieder geschlossen werden.
pywhatkit.sendwhatmsg_to_group_instantly("AB123CDEFGHijklmn", "Hey All!", 10, 5)
Versand an eine Einzelperson
Die Schritte für den Nachrichtenversand an eine Person sind noch einfacher. Man kann direkt an eine Telefonnummer versenden:
import pywhatkit
# WhatsApp Nachricht "Hello World!" an die Nummer "+123456789" um 12:10 Uhr
pywhatkit.sendwhatmsg("+123456789", "Hello World!", 12, 10)
# WhatsApp Nachricht "Hello World!" an die Nummer "+123456789" um 12:10 Uhr
# 2 Sekunden danach soll WhatsappWeb geschlossen werden
pywhatkit.sendwhatmsg("+123456789", "Hello World!", 12, 10, 15, True, 2)
Logging
Im Python Projekt wird automatisch ein simples Textfile erstellt, wo die versendeten Nachrichten nochmal zurückverfolgt werden können:
Hey,
wenn ich Pywhatkit mit pip installieren möchte, dann kommt immer der folgende Fehler:
error: externally-managed-environment
Wie kann ich das “umgehen” fixen?
LG Alex
Hi Alex,
Glaube das ist neu bei Python 3.11+. Ich würde dir Weg 2 oder 3 von dieser Anleitung empfehlen: https://www.makeuseof.com/fix-pip-error-externally-managed-environment-linux/ . Weg 1 würde ich auf keinen Fall einschlagen, weil er aus meiner Sicht zu risikobehaftet ist.
LG,
Patrick
Hallo ich hab 2 anliegen
1. Diese Website ist ja mega cool gemacht und aufgebaut
2. Wenn ich diesen Code in cmd eingebe dann kommt entweder die Benachrichtigung das Whatsapp sich in 85.000 sec öffnet und dann innerhalb von 15 sec absendet oder Whatsapp öffnet sich, die Nachricht wird bereitgesellt zum absenden aber sendet nicht ab dh. ich muss manuell den Knopf zum abdrücke senden
wie kann ich das beheben ?
LG Max
Hi Max,
Ist schon ein Weilchen her seit meinen letzten Versuchen diesbezüglich, aber am Besten ist es, wenn Whatsapp Web bereits geöffnet ist – so hat es bei mir (damals) sehr zuverlässig funktioniert.
LG,
Patrick