WhatsApp-Nachrichten über Kommandozeile verschicken
Es gibt mittlerweile eine ziemlich einfache Möglichkeit, per Kommandozeile Nachrichten per WhatsApp zu verschicken. Möglich ist das Ganze über die ein kleines Python-Tool namens „Yowsup„. Mit diesem Tool ist es möglich, die WhatsApp-Registrierung durchzuführen und anschließend Nachrichten zu versenden und zu empfangen. Da ich dem Empfang noch nicht getestet habe, beschreibe ich hier erst einmal, wie der Versand von Nachrichten funktioniert.
Voraussetzungen
- eine gültige Handynummer
- Python
- python-dateutil
- argparse for python < 2.7
- libxml2
- Yowsup
Yowsup downloaden und entpacken
Zuerst einfach das git Repository von Yowsup auf den lokalen Rechner/Server klonen. Das erledigt man über folgenden Befehl:
git clone https://github.com/tgalal/yowsup |
Anschließend in den Unterordner „src“ von „yoswum“ wechseln, da dort die Kommandozeilen-Tools (yowsup-cli) liegen, die nun benötigt werden:
cd yowsup/src/ |
Registrierung
Bevor man Nachrichten versenden kann, muss die eigene Handynummer bei WhatsApp registriert werden. Als erstes muss die Handynummer, die zum versenden von Nachrichten genutzt werden soll, in der Config-Datei angegeben werde. Ich habe dazu einfach, weil Nerds wie ich ja tendenziell eher faul sind, einfach die Beispiel-Datei (config.example) geöffnet und angepasst:
vi config.example |
cc=49 #if not specified it will be autodetected phone=491751234321 id= password= |
Wichtig sind hier im ersten Schritt nur die Parameter „cc“ und „phone“. Unter „cc“ muss die Landeskennung angegeben werden. Für Deutschland wäre dies die „49“. Unter „phone“ muss die Handynummer angegeben werden, die für WhatsApp registriert werden soll. Das Format lautet in meinem Fall: 491751234321.
Anschließend die Datei speichern und folgenden Befehl ausführen (wir befinden uns immer noch im Ordner yowsup/src/):
python yowsup-cli -c config.example -r sms |
Die Antwort könnte wie folgt aussehen:
status: sent retry_after: 25205 length: 6 method: sms |
Auf dem angegeben Handy sollte nun eine SMS mit einem Freischaltcode für WhatsApp angekommen sein. Als Beispiel dient hier mal der Code „123-987“.
Abgeschlossen wird die Registrierung mit dem Befehl:
python yowsup-cli -c config.example -R 123-987 |
Das Ergebnis sollte wie folgt aussehen:
Detected cc: 49 status: ok kind: free pw: 74beaae5d1af0c04c57c37ff0045573603ff34dd= price: 0,89 € price_expiration: 1389688778 currency: EUR cost: 0.89 expiration: 1418553624 login: 491751234321 type: existing |
Wichtig ist nun das Attribut „pw“. Dort steht das Passwort, mit dem der Login auf den WhatsApp-Servern durchgeführt wird. Dieses Passwort muss nun in der Config-Datei angegeben werden. Also wieder die Datei öffnen und anpassen:
vi config.example |
cc=49 #if not specified it will be autodetected phone=491751234321 id= password=74beaae5d1af0c04c57c37ff0045573603ff34dd= |
Die Registrierung und Konfiguration ist abgeschlossen. Jetzt kommt der lustige Teil.
Nachricht versenden
Nachdem die Konfiguration abgeschlossen ist, kann nun eine Nachricht versendet werden. Hierzu gibt es zwei Möglichkeiten: Zum einen kann man eine Nachricht stumpf versenden, ohne auf Antworten zu warten („Fire-and-forget“) und zum anderen kann man den interaktiven Modus starten, über welchen man im klassischen Chat-Stil Nachrichten empfangen und versenden kann.
Der Befehl für ein einfaches verschicken lautet:
python yowsup-cli -c config.example -s 4915777818466 'Hallo Welt' |
Das Ergebnis dürfte in etwa so aussehen:
Detected cc: 49 Authed 491751234321 Sent message |
Es wurde somit eine Nachricht vom Absender 491751234321 (der registrierten Nummer) mit dem Inhalt „Hallo Welt“ an die Nummer 4915777818466 geschickt.
Wenn der interaktive „Chat-Modus“ gestartet werden soll, genügt der Befehl:
python yowsup-cli -c config.example -i 4915777818466 |
Jetzt wird ein Chat-ähnlicher Dialog gestartet, über den nicht nur Nachrichten abgeschickt, sondern auch empfangen werden können.
Diese Spielerei kann nun für alle möglichen Schweinereien genutzt werden. Der Fantasie sind keine Grenzen gesetzt. Ich selbst spiele gerade mit dem Gedanken, Nagios/Icinga Notifications aus meinem Monitoring-System über WhatsApp zu verschicken.
Fragen oder Feedback zu der Anleitung bitte jederzeit gerne als Kommentar, Tweet oder Mail hinterlassen.
10 Gedanken zu „WhatsApp-Nachrichten über Kommandozeile verschicken“
Sehr gute Erklärung. Damit hat es tatsächlich funktioniert. Vielen Dank dafür.
Hi,
Sehr gute Erklärung. Ich habe eine Frage mit Whatsapp Nachrichten senden ist kostenlos ? wenn ja ? warum steht ein Preis.
price: 0,89 €
price_expiration: 1389688778
currency: EUR
cost: 0.89
Danke
Hi,
ich würde auch gerne wissen, ob das die 0,89€ kostet?
Rein aus dem Nauch heraus hätte ich jetzt mal Nein gesagt oder?
VG
Super! Danke für deine Erklärung.
Klappt alles 🙂
89 Cents bedeutet, dass whatsapp nach einem Jahr soviel pro Jahr kostet, erstes Jahr ist frei.
Das scheint so nicht mehr zu funktionieren.
Der git Befehl checkt ein Baum aus das keine src Verzeichnis oder config.example enthält. Scheinbar enthält der benötigte Config. aber mehr als die 4 Zeilen oben da
man damit die Meldung kriegt:
# python yowsup-cli -c config.20151115 -r sms
Available commands:
===================
demos, version, registration
Dann habe ich versucht „# python setup.py install“ da dies für linux (SuSe 13.2 habe ich) im README-md steht, der kopiert und baut vieles und bricht schliesslich ab mit
ValueError: –enable-jpeg requested but jpeg not found, aborting.
Vielleicht gibt es eine ältere yowsup womit das so schön einfach wie oben beschrieben geht?
Jetzt habe ich nachgelesen man hat seit diesem Beitrag yowsup 2.0 herausgebracht alles auf dem Kopf gestellt…
für mich unter SuSe Linux Desktop 13.2 ginge es nun so:
(1) Installiere Pakete:
python-devel
libjpeg8-devel
ncurses-devel
(2) Build:
python setup.py install
(3) Registrieren Schritt 1:
yowsup-cli registration –requestcode sms –phone 49152 –cc 49 –mcc 262 –mnc 04
mcc/mnc sind mobile country code/mobile network code, hier für deutschland und vodafone, ersetzen wie passend (https://en.wikipedia.org/wiki/Mobile_country_code)
(4) SMS Empfangen mit 6-stellige Code
(5) Registrieren Schritt 2:
yowsup-cli registration –register –phone 491525 –cc 49
Als Antwort kommt der Block:
======================
status: ok
kind: free
pw:
price: 0,89 €
price_expiration: 1450280876
currency: EUR
cost: 0.89
expiration: 1479128592
login: 491525
type: new
======================
(6) Config. Datei (bei mir /etc/yowsup.config) erstellen wie oben beschrieben mit diesem Password, also die 4 Zeilen:
cc=49
phone=491525
id=
password=
(7) Nachrichten kann man jetzt so verschicken:
yowsup-cli demos -s 49152 „just a test“ -c /etc/yowsup.config
Das erste verschicken hat lange gedauert mit der Meldung „building keys…“ das von 0 bis 100% Fortschritt gezählt hat, und die Nachricht wurde auch nicht ausgeliefert. Danach hat es aber schnell und zuverläßig funktioniert.
Besten Dank für den Artikel!
ist ja blöd der blog ersetzt scheinbar alles zwischen \ mit nichts also wo ich geschrieben habe \ oder \ hat man es gelöscht… leider gabs auch kein Vorschau. Ich hoffe man kann es trotzdem verstehen!
scheinbar kann man hier gar kein „größer als“ oder „kleiner als“ schreiben
Kommentare sind geschlossen.