En twitter...

  • 077-20120208 | Flickr - Photo Sharing! http://t.co/gtSwabwW #366PhotoChallengeCR #365 #photo
    3 horas 36 mins ago
Pinterest Partner: Yes, They’re Making Money from Pins http://t.co/9B95vKkO3 horas 43 mins ago
Cloud Technology Lets Doctors View Internal Organs on an iPad [VIDEO] http://t.co/VyzkvHDI5 horas 47 mins ago
Amasia: el supercontinente que fusionará América y Asia http://t.co/SZj0oZmC8 horas 45 mins ago
@alonsohidalgo75 ok, nos vemos a las 3 1/2 — 9 horas 7 mins ago
Responsive Design Tricks: Fluid Typography With CSS 3 http://t.co/76kYioma9 horas 44 mins ago
Is Pinterest Pocketing Revenue by Tracking User-Generated Pins? http://t.co/YwKkyB7s9 horas 46 mins ago
077-20120208 - posterous http://t.co/x8e0sg3z #366PhotoChallengeCR #365 #photo — 10 horas 10 mins ago
Happy Cog redesigns site 'live' http://t.co/q2T168U210 horas 40 mins ago
Google+ cambia la forma de buscar http://t.co/YARuXlbh10 horas 42 mins ago
Rusia confirma que ha alcanzado el agua más pura y antigua del mundo http://t.co/xd5GXqaL10 horas 43 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);
    }     
}

Individual Member Large

 

Suscripción

Ingresa tu dirección de correo:

Proporcionado por FeedBurner