Lo nuevo...
- jQuery links 2012-01-30 [updated]
- p::screencast - Introducción a drush y drush_make - Parte I
- p::screencast Instalación Drupal 7 en IIS y MSSQL server con WebPI
- Drupal 8 - Drupal mobile - El futuro
- p::screencast: Instalación de Drupal 7
- DrupalNotes: ¿Drupal, por dónde empezar?
- Tecnologías Web
- Drupal para medios de comunicación - OpenPublish
- WebMatrix - Instale Drupal y PHP en IIS fácilmente (parte II)
- Drupal Links 2010-08-16
En twitter...
-
Apple Goes After Samsung Galaxy Tab in Court [VIDEO] http://t.co/1iwEVdoy1 hora 59 mins ago
| Drupal core announcements: Kernel patch for WSCCI nearly complete http://t.co/WyYECEQG — 2 horas 57 mins ago |
| Clemens Tolboom: Symfony development from a Drupal perspective http://t.co/rCuuoIr7 — 6 horas 57 mins ago |
| The http://t.co/5PdgYpfr Daily is out! http://t.co/TigaMSSl ▸ Top stories today via @bitconstructor — 7 horas 13 mins ago |
| Qué hacer para que no fallen los dispositivos electrónicos http://t.co/6sHEHUDV — 7 horas 57 mins ago |
| La mujer del millonario más joven del mundo http://t.co/wEmW7wKq — 8 horas 58 mins ago |
| Detectan una enzima que deteriora el sistema inmune de los astronautas http://t.co/2PMAaMw2 — 9 horas 24 mins ago |
| How to Watch Today's Solar Eclipse Without Special Equipment http://t.co/DwYakwju — 10 horas 53 mins ago |
| Dave Hall Consulting: Your Site Should be Full of BEANs* http://t.co/vV8p9G2y — 10 horas 58 mins ago |
| Our favorite tweets of the weekMay 14 – May 20, 2012 http://t.co/IJe3wPjB — 11 horas 56 mins ago |
| 15 Helpful HTML Books for Beginners Worth Checking http://t.co/RVFRLwWy — 11 horas 56 mins ago |
Una manera de enviar un 'post' a twitter con PHP y cURL
Existen varias formas de enviar un mensaje a una cuenta de twitter. Para el ejemplo que he escogido mostrar, utilizaré PHP como lenguaje con cURL, que es una de las formas más sencillas de interactuar con twitter.
Antes de iniciar, se debe buscar la dirección del .rss público de twitter, que tiene la forma http://twitter.com/statuses/user_timeline/16830577.rss
A continuación detallo la función:
//Función para enviar mensaje de texto a una cuenta en twitter
function sendTwitter( $msg ){
// Inicializar variable con el URL al feed de Twitter
$twiturl = 'http://twitter.com/statuses/user_timeline/16830577.rss';
// Inicializar variable con el usuario de Twitter
$username = 'paviles';
// Inicializar variable con el password de Twitter (en clear text)
$password = '*****';
// Inicializar variable con el URL hacia donde se localiza el xml del API de twitter
$twitterurl = 'http://twitter.com/statuses/update.xml';
// Inicializa una instancia para manejar un objeto curl para Twitter
$ch = curl_init();
// CURLOPT_URL es el URL que se quiere obtener.
curl_setopt ($ch, CURLOPT_URL, $twiturl);
// El encabezado no se incluye en la salida.
curl_setopt ($ch, CULROPT_HEADER, 0);
// El contenido del encabezado "User-Agent: "
// como una petición HTTP para hacerse ver como Firefox
curl_setopt($ch, CURLOPT_USERAGENT,
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1.1)" .
"Gecko/20061223 Firefox/2.0.0.1");
// Se habilita el uso de búferes de salida.
// La salida del sccript no se envía (sólo encabezados). Se almacena en un búfer interno
ob_start();
//Se ejecuta y cierra la sesión curl
curl_exec ($ch);
curl_close ($ch);
// Se guarda el buffer en un string
$xmlstr2 = ob_get_contents();
//Esta función descarta los contenidos del búfer de salida en cola y lo deshabilita.
ob_end_clean();
// El string obtenido se convierte a un objeto XML
$twitxml = new SimpleXMLElement($xmlstr2);
// Se borran los prefijos del mensaje
$twitmsg = trim(str_replace($username . ":", null, $twitxml->channel->item->title));
// Por si las moscas, se obtienen los primeros 140 caracteres de los dos mensajes
// para estar seguros de que no son el mismo y no volverlo a enviar
$shortface = substr($msg, 0, 140);
$shorttwit = substr($twitmsg, 0, 140);
if ( $shortface != $shorttwit ) {
// Inicializa una instancia para manejar un objeto curl para Twitter
$ch = curl_init();
// CURLOPT_URL es el URL que se quiere obtener.
curl_setopt ($ch, CURLOPT_URL, $twitterurl);
// Devuelve el resultado de curl_exec() como una cadena de texto,
// en vez de mostrar la salida directamente en la ventana del browser.
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, TRUE);
// Se indica que la petición es de tipo HTTP POST (application/x-www-form-urlencoded)
curl_setopt( $ch, CURLOPT_POST, 1);
// Se envía el mensaje
curl_setopt( $ch, CURLOPT_POSTFIELDS, "status=" . urlencode( $msg));
// Se envían datos de autenticación
curl_setopt( $ch, CURLOPT_USERPWD, "$username:$password");
// Se habilita el uso de búferes de salida.
// La salida del sccript no se envía (sólo encabezados).
// Se almacena en un búfer interno
ob_start();
// Se indica que ejecute la operación
$response = curl_exec( $ch);
//Esta función descarta los contenidos del búfer de salida en cola y lo deshabilita.
ob_end_clean();
//Se cierra la sesión curl
curl_close( $ch);
// Se puede verificar el estado de la operación donde:
// -1: El mensaje ya había sido enviado
// 1: Error
// 0: Mensaje enviado de forma satisfactoria
if (empty($response)) {
return 1;
} else {
return 0;
}
}
else {
return (-1);
}
}
