Cibersecurity - Tegnology Header

1-removebg-preview-1

Como programar un Bot para Twitter


 



Hola hoy aprenderemos algo bastante interesante, se tratara sobre como armar un bot para Twitter que este las 24 horas funcionando, haciendo las funciones de Retweet o Fav a otros twitter de manera automatica.

Para esto vamos nesesitaremos dos cosas, si tenemos pensado dejar el bot siempre encendido, deberemos  

tener un servidor o maquina virtual en la nube para dejar en funcionamiento las 24/7 el bot, de modo que al apagar nuestro ordenador no deje de funcionar el bot, ya que estara funcionando dentro de esa maquina virtual.


Paso 1 - Crear una cuenta Developer/desarollador

Para esto armaremos lo primero es Crear una cuenta desarrollador en Twitter, deberemos ingresar a Developer Twitter y solicitar una solicitud de cuenta desarrollador. Te enviaran un formulario y solicitaran informacion para que quieres utilizar el API de twitter. Este proceso puede demorar hasta 24 horas, una vez hayas enviado la solicitud recibiras un correo de aprobacion en tu correo electronico.


Paso 2 - Crear una APLICACION PARA OBTENER EL API


Ingresamos al dashboard y ingresamos para crear una nueva aplicacion




Una vez aqui lo que hacemos es darle a New Proyect y elegimos un nombre para nuestra APP







Deberemos seguir todos los pasos que nos indica en el formulario para la creacion de nuestra aplicacion y luego ya tendremos la aplicacion lista, los datos del Key podremos encontrarlo en la seccion que dice Keys And Tokems





Dentro de esta seccion tendremos 4 datos que seran importantes tenerlos anotados para posteriormente crear un script en Python que nos permita acceder a nuestra cuenta de Twitter y empezar a interactuar con los tweets.


Esos datos son Api Key y Api Secret Key, tambien mas abajo encontramos el Acees token y el Secret Acess Token


+


Ahora vamos a crear un script en Python con el siguiente codigo






import tweepy
import time

auth = tweepy.OAuthHandler('API KEY','API SECRET KEY')

auth.set_access_token('ACCESS TOKEN','ACESS SECRET TOKEN')

api = tweepy.API(auth, wait_on_rate_limit=True, wait_on_rate_limit_notify=True)

user = api.me()
search = "#Linux"
nrTweets = 999999
for tweet in tweepy.Cursor(api.search, search).items(nrTweets):
    try:
        print('Tweet RT')
        tweet.retweet()
        time.sleep(10)
    except tweepy.TweepError as e:
        print(e.reason)
    except StopIteration:
        break
        
        

En los campos API KEY API SECRET KEY  y en los campos Acess Token y Acess Secret Token, deberemos colocar los datos que nos muestra en la aplicacion que creamos en Twitter, el script en cuestion nos quedaria algo como esto




Les explico algunos parametros a configurar ademas de los datos de acceso


search="#Linux"

Aca deberemos colocar el hastag con el cual va a interactuar el bot, por ejemplo aqui solo interactuaria con hastags de linux, y solo dara retweet a los tweets que contengan ese hastag.


tweet.retweet()

Esta es la funcion que hace que se de Retweet a los tweets si quisieran que en lugar de dar Retweet de FAV solo deberian cambiar esa linea por la siguiente


tweet.favorite()

Por ultimo la siguiente linea

NrTweets=999999

Aqui solo deberian especificar la cantidad de retweets o tweets que quieran que interactue el bot.


Paso 3 - Dejar el bot siempre ON


Cuando hayamos configurado el codigo simplemente guardamos y lo ejecutamos. pero esto sera solo mientras mantengamos una session SSH abierta al servidor, cuando nosotros cerramos la consola el script automaticamente se para.

Para esto hay dos soluciones, la primera es utilizar Crontab y programar para que el bot se ejecute automaticamente cada cierto tiempo, por ejemplo cada 2 horas. Si quieres utilizar Crontab aca te dejo un articulo que he creado para utilizarlo Crontab tutorial


El otro metodo consiste utilizar nohup para ejecutar en segundo plano el script python. y simplemente para ejecutarlo hariamos lo siguiente


nohup mibotscript.py &


Acto seguido podriamos cerrar la consola SSH y el proceso seguiria ejecutandose dentro de la maquina todo el tiempo, por lo cual el bot quedaria funcionando dentro del server las 24 horas el dia. 

Espero este articulo te haya sido de utilidad, te mando un abrazo Atte: Facu Salgado