Recientemente la empresa en donde trabajo bloqueo el acceso a la página de Twitter, en realidad no actualizo mi estatus en Twitter muy seguido, y aunque en mi circulo mas cercano de conocidos todavia no lo utiliza tan seguido como yo quisiera, pienso seguir usandolo , me gusta bastante todo el concepto de Microbloging.
Asi que buscando en Internet me encontre con estas dos ligas:
Command Line Twitter Client
Scripting Twitter with cURL
en las cuales se explica como actualizar el estatus de Twitter desde la línea de comandos, utilizando el comando de Linux curl y el API de Twitter
Basicamente lo que hay que hacer es invocar la URL http://twitter.com/statuses/update.json con cURL enviandole el parametro status y validando el nombre de usuario y contraseña
La instrucción es la siguiente:
$ curl --basic --user "twitter_username:twitter_password" --data-ascii "status=Probando Twitter desde la linea de comandos con curl" "http://twitter.com/statuses/update.json"
No voy a explicar aqui todas las opciones de curl porque la herramienta es muy extensa, pero a grandes rasgos lo que estamos haciendo es validando el nombre de usuario y contraseña y posteriormente un post a http://twitter.com/statuses/update.json (parte del API de Twitter)
El problema de utilizar este enfoque es que si lo hago desde mi equipo, curl se intentara conectar por http y ese servicio es el que esta bloqueado desde mi PC, pero lo que si puedo hacer, es conectarme a un servidor remoto a traves del puerto 22 y ejecutar la instrucción desde el servidor.
Una opción sería conectarme al servidor cada vez que quiera actualizar mi estatus o alternativamente puedo utilizar la herramienta plink con la cual puedo ejecutar comandos en el servidor remoto. De tal forma que para poder conectarme al equipo remoto y ejecutar la instrucción curl en una sola línea tendría que ejecutar:
$ plink -v -pw remote_password remote_user@direccion_IP "curl --basic --user \"twitter_username:twitter_password\" --data-ascii \"status=Desde Plink tambien se puede ejecutar el comando de forma remota \" \"http://twitter.com/statuses/update.json\" "
Ahora cada vez que quiera actualizar mi estatus tendría que estar ejecutando una linea de
comando muy larga, sería mucho mas comodo si pudieramos ejecutar el comando desde una interfaz grafica, una forma muy rapida de hacerlo
es utilizar las funciones para GUI del AutoHotkey.
A continuación un script muy sencillo de AutoHotkey para hacer el post:
;TwitterPost.ahk - Script para actualización de estatus de Twitter con curl y GUI de AutoHotkey
#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%
Gui, Add, Edit, Limit140 vEstatus,
Gui, Add, Button, default, OK
Gui, Show
return
GuiClose:
ButtonOK:
Gui, Submit
Run, c:\plink -v -pw PASSWORD user@DIRECCION_IP "curl --basic --user \"twitter_username:twitter_password\" --data-ascii \"status=%Estatus% \" \"http://twitter.com/statuses/update.json\" "
ExitApp
 Actualizar estatus de Twitter con GUI
|
Por último si queremos leer el timeline de Twitter desde la línea de comandos:
$ curl -u twitter_username:twitter_password http://twitter.com/statuses/friends_timeline/twitter_username.rss | grep description
Y el respectivo cliente de AutoHotkey:
;TwitterRead.ahk - Script para leer estatus de Twitter de un usuario en particular
SendMode Input
SetWorkingDir %A_ScriptDir%
RunWait, %comspec% /c c:\plink -v -pw remote_password remote_user@direccion_IP "curl -u twitter_username:twitter_password http://twitter.com/statuses/friends_timeline/marioalberto.rss | grep description" > c:\twitt.txt, , min
FileRead, FileContents, C:\twitt.txt
Gui, Add, Text, W540 R30 vMyEdit
GuiControl,, MyEdit, %FileContents%
Gui, Add, Button, default, OK
Gui, Show
return
GuiClose:
ButtonOK:
ExitApp
 Leyendo el Timeline de Twitter con GUI
|
Notese que los resultados
de twitter son entregados en formato RSS y que no estoy haciendo ningun parseo del RSS, unicamente obtengo las lineas con los mensajes utilizando un grep.
Para probar el código no olvides cambiar todo lo que esta en negritas por tus propios datos.
© Copyright Mario Alberto Ramirez, todos los derechos reservados