jueves, 19 de septiembre de 2013

Simple bot en Python para Twitter



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.

No hay comentarios:

Publicar un comentario