Raspberry Pi’den WhatsApp mesajı atmak

Daha önce Raspberry Pi sunucumdaki sıcaklık uyarıları, IP bilgilerini Pushingbox, PushBullet gibi servislerle gönderdiğimi yazmıştım. Bugün internette gezinirken hhttp://www.instructables.com/id/WhatsApp-on-Raspberry-Pi/ adresindeki amcanın linux cli ile WhatsApp mesajları gönderebildiğini okudum. Hemen denemeliydim, denedim de 🙂

WhatsApp mesajı göndermek için https://github.com/tgalal/yowsup adresindeki python kütüphanesini kullanacağız.

Kütüphaneyi kurabilmek için öncelikle gerekli diğer python kütüphanelerini kuralım.

1
sudo apt-get update && sudo apt-get install git python-dateutil python-setuptools python-dev libevent-dev ncurses-dev

Daha sonra kütüphaneyi git komutu ile indirelim.

1
git clone git://github.com/tgalal/yowsup.git

Dosyalar indirildikten sonra kütüphaneyi kuralım.

1
2
cd yowsup
sudo python setup.py install

Kütüphane başarılı bir şekilde kurulduysa artık sıra WhatsApp sunucularına kayıt olup mesaj göndermeyi denemekte. WhatsApp kayıt işlemi işi aşamadan oluşuyor.Önce sunucudan bir kayıt kodu isteniyor daha sonra ise telefona gelecek bir pin ile kayıt tamamlanıyor. (WhatsApp her bir GSM/IMEI numarası için bir login kabul ettiği için WhatsApp kurmadığınız/kullanmadığınız bir GSM numarası bulsanız iyi olur.)

Kayıt kodu isteme işlemi için aşağıdaki komutu kendinize göre ayarlayıp çalıştırın;

1
2
3
4
5
/usr/local/bin/yowsup-cli registration --requestcode sms --phone 905xxxxxxxxx --cc 90 --mcc 286 --mnc 2

cc  : Country Code, Türkiye için 90
mcc : Mobil Country Code, Türkiye için 286
mnc : Mobil Network Code; Turkcell için 1, Vodafone için 2, AVEA için 3

Eğer komut başarılı bir şekilde çalışırsa kayıt sunucusu telefonunuza XXX-XXX şeklinde bir kod gönderecektir. Bir sonraki işlem ise bu kodu kullanarak kaydı tamamlamak. Bunun için aşağıdaki komutu kendinize göre değiştirip çalıştırın.

1
/usr/local/bin/yowsup-cli registration --register XXX-XXX --phone 905xxxxxxxxx --cc 90

Eğer kayıt başarılı bir şekilde tanımlanırsa sunucu aşağıdakine benzer bir sonuç verecektir. Çıkan sonuçtaki pw kısmını kaydedin, bir sonraki adımda gerekecek.

1
2
3
4
5
6
status: ok
  kind: free
  pw: xxxxxxxxxxxxxxxxxx=
  price_expiration: 1416553637
  expiration: 1445241022
  login: 90xxxxxxxxxxx

Son adımda yowsup-cli programı için bir yapılandırma dosyası hazırlamak gerekli. Bunun icin bir adım önce aldığımız pw değerini yapılandırma dosyasında password kısmında kullanacağız. (= işaretlerini almayı unutmayın.)

1
2
3
4
5
cat < <EOF > yowsuprc
cc=90
phone=90xxxxxxxxxx
password=PASSWORD
EOF

Artık mesaj göndermeye hazırız. Mesaj gönderme komutumuz aşağıdaki gibi. (Aşağıdaki GSM no mesaj göndermek istediğimiz kişinin GSM numarası, karışmasın. 🙂

1
/usr/local/bin/yowsup-cli demos -c /home/gurcanozturk/.yowsuprc -s 905xxxxxxxxx "Deneme mesajı"

Herhangi bir sorun yoksa, gönderdiğiniz kişiye “Deneme mesajı” mesajınız başarılı şekikde gitmiş olmalı. Örnek olarak daha önce de kullandığım Raspberry Pi CPU sıcaklığı bildirme scriptini WhatsApp mesajı atacak şekilde değiştirebiliriz.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/usr/bin/env python
# CPU sicakligi 60 C'den yuksek ise WhatsApp mesaji gonderen script.
# Temmuz 2015

__author__ = 'Gurcan OZTURK - gurcan@gurcanozturk.com'

import os,re,match
import urllib2
import subprocess

gsmno = '905xxxxxxxxx'

input = os.popen('vcgencmd measure_temp').readline()
temp  = re.findall(r"[-+]?d*.d+|[-+]?d+", input)[0]

if int(float(temp)) > 60:
   subprocess.call("/usr/local/bin/yowsup-cli demos -c .yowsuprc -s %s 'CPU Sicakligi %s C'" % (gsmno, temp), shell=True)

5 dakikada bir çalışacak bir cronjob tanımlayarak Raspberry Pi CPU sıcaklığı 60C’yi aşarsa WhatsApp mesajı alabilirsiniz.

4 Responses

  1. sedat says:

    çalışman için teşekkür ediyorum.bende senin yaptıklarını denedim..erişim engellendi gibi bir hata mesajı alıyorum sebebi ne olabilir acaba

  2. gül says:

    Whatshapp kaydı yaparken sürekli hata veriyor..
    Hata içeriğinin sonu şu şekilde :
    IOError: [Errno 13] Permission denied: ‘/usr/local/lib/python2.7/dist-packages/protobuf-3.1.0.post1-py2.7.egg/EGG-INFO/requires.txt’

    yardımcı olur musunuz?

Leave a Reply


*