Quizás muchos de ustedes han deseado crear un robot para twitter, les indico que es más facil de lo que suena.
Lo primero que necesitan es un Wrapper del API de twitter escrito en PHP.
El robot que les mostraré a continuación, será capaz de enviar tweets de manera automática utilizando una base de datos en MySQL Y CRONJOBS. Si desean algo más, no duden en preguntar.
Les recomiendo utilizar TwitterOAuth de Abraham Williams que para mi es uno de los más sencillos de utilizar y de entender, lo único malo que tiene es que aun no soporta actualizaciones de twitter con imágenes o vídeo. (Aunque no es un inconveniente muy grande)
Para descargar TwitterOAuth visiten este enlace: https://github.com/abraham/twitteroauth
Al descargarlo, encontrarán un monton de cosas que no serán necesarias, lo que realmente necesitamos son los archivos que se encuentran dentro de la carpeta twitteroauth:
OAuth.php
twitteroauth.php
Bueno, sin más que decir, empezemos a trabajar:
1. Preparando el espacio de trabajo
Vamos a empezar creando una carpeta llamada "twitbot" y dentro de ella crearemos un archivo vacío llamado index.php y una carpeta llamada "include", dentro de "include" colocaremos los archivos "OAuth.php" y "twitteroauth.php" que sacamos de TwitterOAuth y crearemos 2 archivos vacíos llamados "functions.php" y "config.php" de manera que nos quede asi:
twitbot/
----------index.php
----------include/
--------------------OAuth.php
--------------------twitteroauth.php
--------------------functions.php
--------------------config.php
si deseas descargar la base para empezar, puedes hacerlo desde aqui: Quick Start Twitbot twibot_quick_start.zip
2. Estructurando el trabajo
Antes de empezar a codear el robot de twitter es necesario que tengamos una idea esquematizada de las funciones que necesitamos hacer para que funcione correctamente.
Conexion a la base de datos
Recojer una fila de la base de datos
Tweetear la fila de la base de datos
En vista a que necesitamos una base de datos para enviar los tweets, les dejo un ejemplo de base de datos, sin embargo es necesario que ustedes mismos la llenen con lo que desean tweetear.
Descargar base de datos de ejemplo twitbot.sql.zip
3. Funciones básicas
Empezaremos a codear el archivo include/functions.php
Crearemos la funcion de conexion a la base de datos:
function conexion(){
$conexion=mysql_connect(HOST_DB,USER_DB,USER_PASS) or die(mysql_error());
mysql_select_db(BASE_DATOS) or die(mysql_error());
return $conexion;
}
Ahora crearemos una función que nos permita realizar todas las consultas sin repetir partes de código:
function consulta($query){
$conexion=conexion();
$respuesta=mysql_query($query,$conexion);
mysql_close($conexion);
return $respuesta;
}
ahora, una función que recoja una de las filas de la base de datos de manera aleatoria.
function tweet(){
$query="SELECT `id` FROM `tweet`;";
$res=consulta($query);
$num=mysql_num_rows($res)-1;
while ($ar=mysql_fetch_array($res)){
$array[]=$ar['id'];
}$rango=rand(0,$num);
$tweet_sql="SELECT `contenido` FROM `tweet` WHERE `id` = '".$array[$rango]."' LIMIT 1;";
$res_tweet=consulta($tweet_sql);
$tweet=mysql_fetch_array($res_tweet);
return $tweet['contenido'];
}
Y finalmente la funcion que publica el tweet del robot
function TweeterBOT(){
$Twitter=new TwitterOAuth(ConsumerKey,ConsumerSecret,AToken,ATokenSecret);
$tweet=tweet();
$Twitter->post('statuses/update',array('status'=>$tweet));
}
Quedando nuestros archivo functions.php de esta manera:
<?php
require_once('config.php'); //Mas tarde crearemos este archivo
require_once('twitteroauth.php');
//Conexion a la base de datos
function conexion(){
$conexion=mysql_connect(HostDB,UserDB,UserPass) or die(mysql_error());
mysql_select_db(BaseDatos) or die(mysql_error());
return $conexion;
}
//Generador de consultas
function consulta($query){
$conexion=conexion();
$respuesta=mysql_query($query,$conexion);
mysql_close($conexion);
return $respuesta;
}
//Tweet aleatorio
function tweet(){
$query="SELECT `id` FROM `tweet`;";
$res=consulta($query);
$num=mysql_num_rows($res)-1;
while ($ar=mysql_fetch_array($res)){
$array[]=$ar['id'];
}
$rango=rand(0,$num);
$tweet_sql="SELECT `contenido` FROM `tweet` WHERE `id` = '".$array[$rango]."' LIMIT 1;";
$res_tweet=consulta($tweet_sql);
$tweet=mysql_fetch_array($res_tweet);
return $tweet['contenido'];
}
function TwitterBOT(){
$Twitter=new TwitterOAuth(ConsumerKey,ConsumerSecret,AToken,ATokenSecret);
$tweet=tweet();
$Twitter->post('statuses/update',array('status'=>$tweet));
}
?> 4. Crear la aplicación en twitter
Para poder lograr que el robot funcione, es necesario crear una aplicación en Twitter, para ello accederemos a la siguiente direccion: https://dev.twitter.com/apps/new y seguimos estos pasos:
a) Iniciamos sesion con el usuario de twitter que realizará las publicaciones
b) Rellenamos todos los campos que tienen un asterisco rojo, aceptamos las condiciones y llenamos el captcha
c) Hacemos click en "Create your twitter application"
d) Luego hacemos click en "Create my access token"
e) Vamos a la pestaña "Settings"
f) Donde dice "Application Type" marcas la opción "Read and Write"
g) Hacemos click en "Update this Twitter application's settings"
h) Vamos a la pestaña "OAuth tool"
i) Guardamos todos los datos que alli aparecen (Consumer key, Consumer Secret, Access Token, Access Token Secret)
5. Configurando el robot
Ahora editaremos el archivo include/config.php y definimos algunas constantes:
<?php
define('ConsumerKey',''); //Consumer Key obtenido de la aplicacion de twitter
define('ConsumerSecret',''); // Consumer Secret obtenido de la aplicacion de twitter
define('AToken',''); // Access Token obtenido de la aplicacion de twitter
define('ATokenSecret',''); // Access Token Secret obtenido de la aplicacion de twitter
define('HostDB',''); // Host de la base de datos MySQL (generalmente localhost)
define('UserDB',''); // Usuario con permisos de lectura de la base de datos MySQL
define('UserPass',''); // Clave del usuario de la base de datos MySQL
define('BaseDatos','twitbot'); //Base de datos donde se encuentra la tabla
?>
6. Terminando el robot
Ahora editaremos el index.php que realizará las tareas del CRONJOB
<?php
//Incluimos las archivos necesarios para el funcionamiento
require_once('include/functions.php');
TwitterBOT()
?>
Ya tenemos el robot, solo falta configurar los CRONJOBS, no lo explico porque eso es otro tema.
Descargar el robot completo twibot_completo.zip
Marcadores