A veces es deseable poder automatizar mensajes de whatsapp para que se manden sin que requiera nuestra ayuda. Existen clientes que queremos contactar a diferentes horas o fechas importantes y felicitaciones que no queremos dejar pasar sin mandar un mensaje. ¡Con este bot de whatsapp puedes automatizar todo eso y más!

En esta primera implementación utilizamos la librería de Alright para mandar mensajes a través de whatsapp web. Solamente es necesario el inicio de sesión una vez y de ahí en delante todo se puede automatizar.

Alright usa Selenium para manejar el navegador de Chrome con “chromedriver”, así que tendremos que instalar y agregar al PATH del sistema a chromedrive.

Con Alright podrás:

  • Enviar Mensajes
  • Enviar Imágenes
  • Enviar Videos
  • Enviar Documentos

Comencemos

1) Instala Alright

Necesitamos tener Alright instalado en nuestra máquina para comenzar a usarlo, se puede hacer directamente desde GitHub o usando pip.

Instalación directa:

Primero clonamos o descargamos el repositorio en un directorio local y luego pasamos al directorio del proyecto y ejecutamos la instalación como se muestra en el ejemplo del siguiente comando:

git clone https://github.com/Kalebu/alright
cd alright
alright > python setup.py install

git clone https://github.com/Kalebu/alright
cd alright
alright > python setup.py install 

Instalación por pip:

pip install alright 

2) Instalando chromedriver para Selenium

Debajo de Alright está Selenium que hace todo el trabajo de automatización controlando directamente el navegador, por lo que debes tener un controlador de Selenium en tu PC para que funcione correctamente.

Alright está principalmente hecho y probado en un navegador Chrome y, por lo tanto, pronto será necesario que tengas Chrome y chromedriver instalados:

Descarga chromedriver

Descarga google chrome

Debes asegurarte de descargar la versión de chromedriver compatible con la versión de Chrome que estás utilizando; de lo contrario, no funcionará. Tampoco olvides extraer del zip el archivo de chromedriver.

Aquí una guía para verificar la versión de Chrome que está usando: How to Find Your Internet Browser Version Number – Google Chrome

3) Agregar el PATH de chromedriver al sistema

El último paso para configurar es agregar la ubicación del controlador de chromedriver al path para que pueda ser descubierto por Alright, esto varía según el sistema operativo que esté utilizando.

Por ejemplo, digamos que la ubicación actual de nuestro controlador en /home/user/chromedriver (puede ver la ruta completa a su controlador ejecutando el comando pwd). Así se haría:

Linux

Para que Linux agregue permanentemente una ruta al navegador, haga esto;

nano ~ / .bashrc

y luego agregue el comando para exportar la carpeta en la parte inferior del archivo y luego Ctrl + X para guardarlo

export PATH = "$ PATH:/home/user/chromedriver"

Windows

En el caso de haber descargado y descromprimido chromedriver en la carpeta de descargas, se ejecutaría este comando en el Powershell de windows.

$env:chromedriver = 'C:\Users\username\Downloads\chromedriver'

Los usuarios de Windows pueden seguir esta guía para hacerlo de otras formas o de forma permanente.


Ahora, después de eso, estamos listos para automatizar y controlar la web de whatsappp usando alright

Ejecutando Alright

Cuando ejecutas Alright, solo puede tener una ventana del navegador controlada a la vez, si ejecutas mientras otra ventana está activa, genera un error, así que asegúrese de cerrar la ventana controlada antes de ejecutar otra.

Ejemplo de código para mandar mensajes a múltiples contactos


from random import randint
from time import sleep
import re

from alright import WhatsApp
messenger = WhatsApp()

messages = [
                '+5218444456894',
                'Mom:',
                'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed...',
        
                '5218445803863',
                'Juan Friend 1:',
                'Feliz Navidad!',
        
                '5218442131338',
                'José Friend 2:',
                'Merry Christmas!',
        
                '+1 (832) 123-4159',
                'Raul Friend 3:',
                'Happy birthday dude!',
        
                '+52 1 81 9484 5560',
                'Dad:',
                'Hola papá!'
            ]

size = len(messages)

counter = 0

while counter < size:
    num = re.sub("[^0-9]", "", messages[counter]) #makes sure phone numbers are in correct format
    print(messages[counter])
    print(num)
    print(messages[counter + 1])
    print(messages[counter + 2])
    
    messenger.find_user(num)
    messenger.send_message(messages[counter + 2])
    print('---------------', '\n')
    counter = counter + 3 
    sleep(randint(10,100))

¡Listo! Ya enviamos nuestros primeros mensajes automátizados así de sencillo.

Este artículo está basado en el blog post original de Jordan KalebuPython wrapper for WhatsApp web-based on selenium” y puedes encontrar la liga al repositorio original de Github aquí.

En el artículo original puedes encontrar más información a cerca de cómo mandar mensajes a contactos no guardados, a contactos a través de su nombre, como mandar imágenes, videos y documentos entre otros datos útiles.

Leave a Reply

Your email address will not be published. Required fields are marked *