> Manuales > Manual del API de Twitter y PHP

Cómo enviar mensajes a una cuenta de Twitter desde tus propios scripts PHP y utilizando el API de Twitter.

Seguramente que la persona que lea el Manual de trabajo con el API de Twitter desde PHP estará interesada por la funcionalidad que vamos a mostrar a continuación, pues es uno de los pasos más fundamentales de comunicación con el servicio de microbloging. Así que pongámonos manos a la obra y expliquemos cómo enviar mensajes con nuestra cuenta de Twitter desde un script PHP.

Como vimos anteriormente, trabajar con el API de Twitter resulta bastante sencillo cuando utilizas alguna clase PHP que sirva de puente entre el API y tus scripts PHP. Así que nosotros para explicar el API de Twitter estamos utilizando la Twitter Class, un script de código abierto que ya hemos comentado en el artículo Utilizar una librería PHP para trabajar con el API de Twitter.

El paso que queremos explicar, usando la librería Twitter Class, consta de pocas líneas de código. Realmente veremos que el propio envío del mensaje a Twitter es una única sentencia PHP, una llamada al método updateStatus() de la mencionada clase, aunque nosotros hemos adornado este script para darle un poco más de empaque y de paso aprender algunas otras cosas nuevas del API. En concreto, veremos que existen algunos métodos interesantes, implementados en la clase PHP que estamos utilizando, para saber si tenemos conexión con el API de Twitter y si el usuario que hemos utilizado está correctamente autenticado.

Métodos de Twitter Class que vamos a utilizar

Estos son los métodos que no conocemos todavía de la librería PHP para trabajo con Twitter y que vamos a utilizar.

test():
Este método sirve para comprobar si existe comunicación con el API de Twitter. No recibe parámetros y simplemente devuelve un boleano indicando si hay o no conexión.

verifyCredentials():
Este método tampoco recibe parámetros y así como el anterior, devuelve un boleano con el que sabremos si el usuario que ha iniciado sesión con el API está correctamente autenticado. Como podemos imaginar, devuelve true si el login y contraseña corresponden con los de un usuario de Twitter. False si la autenticación no tuvo éxito.

Nota: Recordemos que la autenticación con el API de Twitter se realiza con los datos que se envían al constructor de la clase Twitter Class.
$obj_twitter = new Twitter("usuario","clave");

updateStatus():
El método updateStatus() recibe como parámetro una cadena de caracteres y la envía como post en la cuenta del usuario autenticado. Es decir, envía un mensaje a Twitter con la cuenta del usuario con el que instanciamos la el objeto de la clase Twitter Class. Recordar que el mensaje debe medir como máximo 140 caracteres.

Formulario para mandar un mensaje a Twitter desde PHP

Ahora que ya conocemos los métodos con los que necesitamos trabajar en este ejemplo, veamos el script PHP que podríamos utilizar para enviar mensajes a Twitter. En esta práctica vamos a hacer un formulario que tendrá los campos de autenticación a Twitter y un textarea para escribir el mensaje a enviar.

Al enviar el formulario comprobaremos si hemos recibido los datos de autenticación, si existe conexión con Twitter y si el login del usuario se ha podido realizar correctamente. En caso que todo haya ido bien, se enviará el mensaje.

El código es el siguiente:

<html>
   <head>
   <title>Enviando mensajes a Twitter desde PHP</title>
   </head>
   <body>
      
   
<?php
if (!$_POST || $_POST["user"]=="" || $_POST["clave"]==""){
   //si no recibo datos de formulario, muestro un formulario con los datos a rellenar
   echo '
   
   <form action="' . $_SERVER["PHP_SELF"] . '" method="post">
   Usuario:
   <br>
   <input type="text" name="user">
   <br><br>
   Clave:
   <br>
   <input type="password" name="clave">
   <br>
   Mensaje (140 caracteres como máximo):
   <br>
   <textarea cols=50 rows=3 name="mensaje"></textarea>
   <br>
   <br>
   <input type="submit" value="Enviar">
   </form>
   ';
}else{
   //incluyo la clase Twitter
   include "twitter.php";
   $usuario_twitter = new Twitter($_POST["user"],$_POST["clave"]);
   
   //compruebo si hay conexión con el API de Twitter
   if($usuario_twitter->test()){
      echo "<br>Con conexión con Twitter.";
      //compruebo si el login de usuario/contraseña es correcto
      if ($usuario_twitter->verifyCredentials()){
         echo "<br>Usuario de twitter autenticado correctamente.";
         
         //ENTONCES, VOY A ENVIAR EL MENSAJE
         $usuario_twitter->updateStatus($_POST["mensaje"]);
         
         echo "<p>Mensaje Enviado!!!!</p>";
      }else{
         echo "<br>Usuario de twitter NO autenticado.";
      }
   }else{
      echo "Sin conexión con Twitter.";
   }   
}

?>

</body>
</html>

Esperamos que se entienda fácilmente con los comentarios en el código y con las explicaciones del principio del artículo.

Como se podrá ver, se comprueban varias cosas antes de mandar el post a Twitter, pero todavía lo podríamos complicar un poco más validando también si el string del mensaje no supera los 140 caracteres que permite este servicio de microblogging.

Referencias: Otro detalle que quizás mejorase todavía más este script es mostrar la cuenta de los caracteres escritos en el textarea, que hemos explicado en artículos aparte de DesarrolloWeb.com:

Esperamos que este ejemplo de trabajo con el API de Twitter haya sido de utilidad para los lectores. El siguiente paso que abordaremos será hacer un pequeño cliente de Twitter en PHP con funcionalidades básicas.

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online Escu...

Manual