Si estan sumergidos en el mundo de Twitter, seguramente se han topado con algun que otro bot que se encarga de hacer favs, retweets o mandar mensajes directos, etc, de acuerdo a la necesidad del este mismo, y quizas se han preguntado como podria crearse uno. Pues me entro la curiosidad de nuevo (antes habia jugueteado un poco con el API de Twitter), y decidi intentar escribir uno que hiciera retweets de acuerdo a una palabra de buqueda que nosotros le pasaramos como parametro.
Cabe comentar que me guie de este post para hacerlo, con las diferencias de que aquel funciona para hacer favs y ademas usa la libreria Twitter para hacerlo. Este es para hacer retweets y ademas usa la libreria Tweepy que es facil de entender y de usar;tambien tuve que meterme de nuevo a la documentación de Twitter para aprender y/o recordar sobre su API.
Requisitos:
Python
Tweepy
Crear una app en Twitter developers
Instalamos la libreria tweepy y twitter.
sudo pip install tweepy twitter
Importamos tweepy, y de la libreria twitter solo TwitterHTTPError con la que atraparemos algun error al retuitear. Desde login (donde previamente habremos puesto los codigos) tambien importamos las llaves y tokens de acceso para la app en Twitter.
# -*- coding: utf-8 -*- import tweepy from twitter import TwitterHTTPError from login import *Nos conectamos a Twitter mediante OAuth.
# OAuth process, using the keys and tokens auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) auth.set_access_token(OAUTH_TOKEN, OAUTH_SECRET)
La función search_tweet() recibirá una palabra de busqueda "q", en este caso hago la pregunta en pantalla y paso la variable query como parámetro de busqueda; con result_type le decimos que busque en los mas recientes publicados y con count que retuitee los primeros 5. Iteramos sobre todos los tuits que encontramos y hacemos retuit con api.retweet(result.id) y lo mostramos en pantalla.
# Function that Search a tweet and else do a retweet for all of them def search_tweet(): query=raw_input("Palabra de busqueda: ") results=api.search(q=str(query), result_type='recent', count=5) for result in results: api.retweet(result.id) print "RT @" + result.user.screen_name + " :" print result.text search_tweet()
Código en Github.
Documentacion de Tweepy.
Saludos.