jueves, 15 de julio de 2010

Nuevo comienzo


Como expliqué en la entrada anterior, pecl/oauth es de momento infactible bajo Windows, y twitteroauth me parece que se queda corta para lo que quiero. Así que salí a la red en búsqueda de otra biblioteca que haga la conexión con twitter sencilla, pero que a la vez nos ofrezca buenas prestaciones.

Es así como llegué al blog de Tijs Verkoyen, quien ha especificado una clase que el ha llamado Twitter Class, utilizando OAuth y cURL (igual que twitteroauth), en la que implementa una gran cantidad de funciones que nos facilitarán enormemente el trabajo. He realizado unas pequeñas pruebas y va de maravillas.

Lógicamente, lo primero que debemos hacer es decargar la librería desde el sitio oficial:
La colocamos en un nuevo directorio (dentro del directorio web de nuestro servidor) y podemos comenzar a utilizarla. Yo voy a copiar en el nuevo directorio, 2 archivos de la entrada anterior: config.php y tutuitero.css. Ahora lo que voy a hacer es escribir un archivo update.php, que haga exactamente lo que hacía el update.php visto anteriormente, pero utilizando la nueva biblioteca:

<?php
session_start
();

require_once(
'twitter.php');
require_once(
'config.php');

// create instance
$twitter = new Twitter(CONSUMER_KEY, CONSUMER_SECRET);

/* Si no tengo tokens de acceso */
if (empty($_SESSION['oauth_token']) || empty($_SESSION['oauth_token_secret']))
{
// get a request token
$twitter->oAuthRequestToken('http://localhost/tutuitero2/twitter-test.php');

// authorize
if(!isset($_GET['oauth_token'])) $twitter->oAuthAuthorize();

// get tokens
$token = $twitter->oAuthAccessToken($_GET['oauth_token'], $_GET['oauth_verifier']);

$_SESSION['oauth_token'] = $token['oauth_token'];
$_SESSION['oauth_token_secret'] = $token['oauth_token_secret'];

}
else
{
$token['oauth_token'] = $_SESSION['oauth_token'];
$token['oauth_token_secret'] = $_SESSION['oauth_token_secret'];
}

// set tokens
$twitter->setOAuthToken($token['oauth_token']);
$twitter->setOAuthTokenSecret($token['oauth_token_secret']);

if(isset($_POST['twitter_msg']))
{
$twitter_message = $_POST['twitter_msg'];
if(
strlen($twitter_message)<1)
{
$error = 1;
}
else
{
$twitter->statusesUpdate($twitter_message);
}
}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Send a message to Twitter using PHP</title>
<link rel="stylesheet" type="text/css" href="tutuitero.css" />
</head>

<body>
<h2>Post a message on Twitter</h2>
<p>This page use Twitter API to send an message</p>

<?php if(isset($_POST['twitter_msg']) && !isset($error)){?>
<div class="msg"><?php echo $twitter_status ?></div>
<?php } else if(isset($error)){?>
<div class="msg">Error: please insert a message!</div>
<?php }?>
<p><strong>What are you doing?</strong></p>
<form action="update.php" method="post">
<input name="twitter_msg" type="text" id="twitter_msg" size="40" maxlength="140" />
<input type="submit" name="button" id="button" value="post" />
</form>

<div class="footer">
Visita <a href="http://tutuitero.blogspot.com">tutuitero.blogspot.com</a>
<br />
</div>

</body>
</html>

El código es bastante explícito, no hace falta mayor explicación. En el sitio oficial, se puede encontrar documentación de todos los métodos de la clase. Esta es la biblioteca que utilizaremos de ahora en adelante en tuTuitero.

0 comentarios:

Publicar un comentario