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

  1. 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

  2. 89 Cents bedeutet, dass whatsapp nach einem Jahr soviel pro Jahr kostet, erstes Jahr ist frei.

  3. 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?

  4. 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!

  5. 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!

  6. scheinbar kann man hier gar kein „größer als“ oder „kleiner als“ schreiben

Kommentare sind geschlossen.