Artigos

WhatsApp – Enviar e receber mensagens do WhatsApp com Raspberry Pi

Em breve vamos lançar um artigo de como montar uma camera de segurança com Raspberry Pi. A camera terá a possibilidade de tirar fotografias e posteriormente consultá-las, em qualquer lugar bastando para isso ter acesso à internet. Isso será num artigo no futuro, hoje vamos falar de algo ainda mais interessante e complementar que será colocarmos o nosso Raspberry Pi a avisar-nos por WhatsApp que foi detetado um intruso na nossa casa ou local de trabalho…  espetacular esta ideia, não é?

Yowsup é uma livraria que permite interagir com os servidores de WhatsApp para enviar e receber mensagens com o nosso Raspberry Pi. Vejamos como instalar e utilizar esta livraria.

Instalação de Yowsup

O primeiro passo será atualizar o sistema do Raspberry Pi com estes comandos:

sudo apt-get update
sudo apt-get upgrade

Quando terminar, vamos instalar o Python Dateutil com este comando:

sudo apt-get install python-dateutil

Agora devemos descarregar a livraria Yowsup do GitHub, podemos fazê-lo descarregando o pacote AQUI e instalando o nosso Raspberry Pi ou com este comando na consola:

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

Se optar por descarregar o ficheiro  e instalá-lo manualmente, vai ter que descomprimir o .zip e instalar a pasta “yowsup-master” do Raspberry Pi.

Registando o número de telefone

Como já se sabe, o uso do WhatsApp requer um Número de telefone, pode-se usar qualquer número de telemóvel. Assim que tenha um número válido de onde possa receber chamadas ou SMS, introduzimos este comando em consola:

cd /home/pi/yowsup-master/src

Temos que editar o arquivo “config.example” para colocar o nosso número de telemóvel quando introduzirmos este comando:

sudo leafpad config.example

No cabeçalho do arquivo é explicado onde colocar estas informações, mas será semelhante a isto:

cc= 351
phone= 351910000000
id=
password=

CC” é o prefixo telefónico do país onde vives (Neste exemplo é o de Portugal)
PHONE” é o prefixo CC + o número de telefone
ID” deixamos vazio
PASSWORD” também deixamos vazio .

Uma vez editado guardamos o arquivo. Agora vamos à consola e registamos o nosso número em WhatsApp com qualquer um destes comandos:

python yowsup-cli -c config.example --requestcode sms #Verificar mediante sms
python yowsup-cli -c config.example --requestcode voice #verificar mediante chamada


Nota: Se aparece um erro por ter uma versão antiga, temos que abrir este arquivo src/Yowsup/Common/constants.py e editar isto.

Temos que esperar que nos chegue o código de registo que tenha um formato numérico XXX-XXX. Quando chegar deveremos executar este comando para que nos chegue a nossa password:

sudo python yowsup-cli -c config.example --register XXX-XXX

A consola vai-nos devolver alguns valores entre os quais está PW. Apontamos este valor e copiamos o arquivo “config.example” no parágrafo password e pronto, agora já podemos enviar e receber mensagens de WhatsApp com Raspbery Pi.

Enviar e receber mensagens

Yowsup-cli é uma pequena aplicação em Python que nos oferece a possibilidade de enviar e receber mensagens do WhatsApp da consola, também é muito fácil de usar, vejamos uns exemplos:

Mandar uma mensagem a um número:

sudo python yowsup-cli -c config.example -w -s 34645777888 "Olá como estás?"

Utilizamos -w para esperar que a mensagem se envie antes de sair y -s para indicar que o que queremos é enviar uma mensagem. Ao executar este comando, a consola devolve-nos:

Authed 34645777888
Sent message
Got sent receipt #Isto equivale a 1 tick em WhatsApp (não confirma a receção)

Receber todas as mensagens pendentes:

sudo python yowsup-cli -c config.example -k -a -l

Utilizamos -k para manter a ligação com o servidor e -a para marcar como lidas as mensagens. Pode ver uma lista completa das funções da aplicação AQUI.

Chat interativo com um número :

sudo python yowsup-cli -c config.example -k -a -i 34645999777 #trocar isto pelo prefixo+numero de destino

Envio de mensagens com Python

Este é um pequeno script para o envio de mensagens com Python:

import base64
#Importa a Classe WhatsappEchoClient, dedicada ao envio de mensagens.
from Examples.EchoClient import WhatsappEchoClient   
#................Chaves de Acesso a WhatsApp............................
password = "***********************"                           #Password dado ao registar o número de telefone.
password = base64.b64decode(bytes(password.encode('utf-8')))   #Codificação de Password para envio aos servidores de whatsApp.
username = '34645777888'                                       #Numero de telefone para o inicio de sessão.
keepAlive= False                                               #Ligação persistente com o servidor de WhatsApp.
#......................................................................
whats = WhatsappEchoClient("TelefoneDestino", "Aqui a tua mensagem", keepAlive)     #Inicia o cliente para o envio de mensagens por WhatsApp.
whats.login(username, password)                                                 #Autentifica o dispositivo con o cliente de WhatsApp.

Gostaram deste artigo ? Deixem o vosso comentário no formulário a baixo.

Não se esqueçam de fazer like na nossa página no facebook.

Todos os produtos utilizados neste artigo podem ser encontrados na loja de componentes eletrónicos ElectroFun.

Comments

comments

Deixar uma resposta

Este site utiliza o Akismet para reduzir spam. Fica a saber como são processados os dados dos comentários.