No me preguntéis los motivos, pero llevaba un tiempo pensando en buscar alguna aplicación que permitiera publicar en twitter mandando un e-mail a una dirección de correo electrónico. Encontré más de un servicio pero en su mayoría habían desaparecido o el funcionamiento no era exactamente lo que yo esperaba. El proceso es simple, necesitamos:
- Hosting propio. Con cuenta de e-mail y opciones de Cron (optativo).
- Cuenta en twitter como developer. (Para crear una App).
- PHP en nuestro hosting (1 solo archivo + librería Oauth).
- Comenzaremos creando una cuenta de correo. Por ejemplo: publicatwitter@hosting.com.
- Un directorio con un archivo PHP en nuestro hosting. Por ejemplo: /mail2tweet/publica.php.
- Creamos una aplicación en twitter en la que indicaremos la url completa al archivo PHP, indicaremos que es una aplicación de lectura y escritura (READ/WRITE) y obtendremos los datos: Consumer_key, Consumer_secret, Access_token y Access_token_secret, estos últimos hay que generarlos desde una de las opciones de configuración de la aplicación. Utilizaremos la librería tOAuth.class.php la podeís encontrar aquí.
- Ahora vamos con el php. Podéis descargar el ejemplo aquí.
- Finalmente si tenemos opción a Cron en nuestro hosting programamos una tarea sobre este archivo PHP cada hora por ejemplo. Si no tenemos Cron sería suficiente con visitar la URL anterior para ejecutar todo el proceso.
Hay un par de detalles que debo comentar. El primero es que para poder identificar claramente los correos que deben ser publicados en twitter en el archivo PHP incluimos una clave para que solo nosotros podamos publicar cosas en nuestro twitter… ¿No queremos spam de viagra verdad?. Lo segundo… No me he querido complicar demasiado con la gestión de IMAP y las partes del correo por lo que he introducido en el texto de los correos unas cadenas de inicio y de fin de mensaje para poder identificarlo facilmente. Un ejemplo de envío sería:
To: publicatwitter@hosting.com
Subject: clavesupersecreta
texto: ***Publica esto***
Ni que decir tiene que no he querido profundizar más en el tema, funciona, que es lo que yo quería. Espero que esto pueda serviros como base a cosas mayores ya que creo ofrece muchas posibilidades.
Trabajando con aplicaciones de Twitter me encontré con este error al tratar de publicar algo en twitter desde mi aplicación:
Array
(
[error] => Read-only application cannot POST
[request] => /statuses/update.json
)
Error en escribe_tweet: Read-only application cannot POST
Puedes pasar horas cambiando cosas y no vas a conseguir nada, la solución es tan sencilla como cambiar desde las settings de la aplicación la propiedad application type de “read only” a “read and write”. Si, tontaco que es uno.
Twitter es una red de información de tiempo real motorizada por gente alrededor del mundo que permite compartir y descubrir lo que está pasando en este momento. Twitter pregunta “Qué pasa?” y hace que la respuesta se propague a través del mundo a millones, inmediatamente. Esto dice Twitter… en resumen no es más que un sitio en el que cada usuario puede escribir algo y esperar que sus seguidores puedan leerlo.
Oauth es un protocolo abierto que mediante una API con sistema simple y estándar nos otorga una autorización segura para tratar con datos protegidos. El esquema de funcionamiento de una aplicación con Oauth puede verse facilmente resumido en esta imagen.
El primer paso para poder crear cualquier tipo de aplicación que implemente Oauth es entender claramente su funcionamiento, básicamente consiste en una aplicación que pide al usuario autorización para acceder a ciertos datos privados de alguna de sus aplicaciones en internet, el usuario acepta dicha petición logándose en la red (Twitter, facebook, Picasa, flickr …). Desde entonces nuestra aplicación obtiene un Token mediante el cual podremos acceder de nuevo a dichos datos privados sin la necesidad de que el usuario deba volver a permitirnos el acceso. Un ejemplo muy claro: “Eduardo tiene las fotos de su último viaje subidas a Facebook, entra en contacto con la web www.Imprimetodaslasfotos.com en la que quiere ordenar la impresión de sus últimas fotos de las vacaciones, mediante un sencillo proceso (Oauth) da acceso a www.Imprimetodaslasfotos.com a sus fotografías en Facebook. Pasados unos minutos Imprimetodaslasfotos.com accede a las fotos de Eduardo en facebook, las imprime y se las manda por mensajería a Eduardo”
Registrar una aplicación en Twiter es muy sencillo, accederemos a http://twitter.com/oauth_clients/ , donde deberemos dar todos los datos necesarios para registrar nuestra aplicación. Obtendremos nuestros datos privados necesarios para la aplicación (Consumer Key y Consumer Secret). Deberíamos descargar los archivos necesarios de la API de Twitter, en mi caso he decidido decantarme por esta Clase de PHP de la que podemos obtener más información en este blog, también podemos mirar un poco la documentación de Twitter.
Tras hacer unos leves cambios en la clase de PHP, insertar los datos de mi aplicación y subirlas a mi propio dominio he realizado mi primera aplicación de Twitter, simple pero muy instructiva. Publica en el Twitter del usuario una tirada aleatoria de un dado de 100 caras (1-100). (Mi pasado rolero me puede jeje)
Y aquí mi aplicación: http://www.ikito.net/d100/