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...
-
Triunfa el Partido Pirata por el bloqueo a su web http://t.co/CReTsLTq43 mins 36 segs ago
| Lanzan una nueva era en los vuelos espaciales http://t.co/MxWRkzY2 — 2 horas 43 mins ago |
| ¿Tiburones confundidos con los monstruos de lagos? http://t.co/jYOEXImT — 2 horas 44 mins ago |
| Paga un euro para que vean tus comentarios http://t.co/wCeYlYPT — 2 horas 44 mins ago |
| A Hands-On Look at the Etcher http://t.co/8DEkVR5L — 3 horas 31 mins ago |
| Free download: 40 Exclusive Photoshop Patterns http://t.co/kFzb2Zlt — 3 horas 43 mins ago |
| 70+ Elegant And Creative WordPress Themes http://t.co/MMBWecCE — 3 horas 43 mins ago |
| How To Customize The WordPress Admin Easily http://t.co/93KfDcze — 3 horas 43 mins ago |
| Review: iRig MIC Cast Audio Tested http://t.co/abMEcVSf — 4 horas 31 mins ago |
| Cuatro cambios que usted podría notar en Facebook tras su salida a la bolsa http://t.co/MSHLhfY0 — 4 horas 42 mins ago |
| HP prepara hasta 30.000 despidos http://t.co/bV0wJ6Ew — 4 horas 44 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);
}
}
