rss
twitter
  •  

Actualiza Twitter usando CURL

| Posted in General |

0

¿Y quien dijo que era difícil ;-)?


curl -u USUARIO:PASSWORD -d status="AQUÍ TU MENSAJE" http://api.twitter.com/1/statuses/update.json

Obtener cantidad followers de twitter con PHP

| Posted in General |

2

Encontré varios códigos por allí, pero nada más delicioso que la simplicidad:


<?php
function twitter_counter($username) {
    $api = 'http://twitter.com/users/show/' . $username;
    $xml = file_get_contents ( $api );

    $profile = new SimpleXMLElement ( $xml );
    $count = $profile->followers_count;
    return $count;
}
echo twitter_counter("alexandergarzon");
?>

El código está ligeramente adaptado del original (con caché) http://ooyes.net/resources/twitter-followers-counter-php-script

Lector RSS de Twitter ideal para Frameworks

| Posted in General |

2

Para un proyecto que estoy desarrollando debía mostrar los últimos X tweets de una cuenta en twitter sin usar JavaScript, sólo PHP; y además debía realizar las labores de “parsing” a las etiquetas # y @ para poder auto-enlazar a su correspondiente query de twitter y además, mostrar “hace cuánto fue escrita la entrada”, es decir: tiempo relativo.

Al no encontrar nada de esto en la web, me dí a la tarea de hacerlo yo mismo, uniendo varias piezas creadas por otros autores incluso en otro lenguajes de programación.

Debo decir que es perfectamente acoplable a cualquier framework en forma de un partial. Puedo decir que corre perfectamente con CodeIgniter.

A continuación, mi humilde aporte:


<?php
/**
 * Visualizar Twitter RSS
 * By: Alexander Garzon (www.php.com.ve)
 * @param string $rss_twitter URL completa del feed RSS
 * @style DIV class named rss_twitter
 * @return html
 */

class RSS_Twitter {

    //Determina si el número (en palabra) es plural si es mayor a 1
    public static function Pluralidad($val, $qty) {
        if ($val > 1) return $val.' '.$qty.'s';
        else return $val.' '.$qty;
    }
    //Calcula el tiempo relativo (diferencia) según una determinada y el presente.
    public static function TiempoRelativo($seconds) {
        if (($seconds / 604800) > 1) return 'Hace '.RSS_Twitter::Pluralidad(round($seconds / 604800), 'semana');
        elseif (($seconds / 86400) > 1) return 'Hace '.RSS_Twitter::Pluralidad(round($seconds / 86400), 'día');
        elseif (($seconds / 3600) > 1) return 'Hace '.RSS_Twitter::Pluralidad(round($seconds / 3600), 'hora');
        elseif (($seconds / 60 ) > 1) return 'Hace '.RSS_Twitter::Pluralidad(round($seconds / 60), 'minuto');
        else return 'Hace '.RSS_Twitter::Pluralidad($seconds, 'segundo');
    }

    public static function FormatoTiempo($tiempocadena) {
        $timestamp = strtotime($tiempocadena);
        $diferencia = time() - $timestamp;
        return RSS_Twitter::TiempoRelativo($diferencia);
    }

    public static function TweetFilter($tweet) {
        //Filtra contenidos del tweet (para links, #tags y @respuestas

        //Se elimina el nmombre del mismo autor en el mensaje (es redundante)
        $pos = strpos($tweet, ":");
        $salida = substr_replace($tweet, '', 0,$pos+2); // El +2 es refiere a el simbolo ':' y el espacio en blanco que le sigue.

        //Agregamos links a los http
        $salida = preg_replace('/(http:\/\/)(.*?)\/([\w\.\/\&amp;amp;\=\?\-\,\:\;\#\_\~\%\+]*)/', '<a href="$0" onclick="window.open(this.href); return false;">$0</a>', $salida);
        //Agregamos links a los @
        $salida = preg_replace('/\B@([_a-zA-Z0-9-]+)/','@<a href="http://twitter.com/$1" onclick="window.open(this.href); return false;">$1</a>',$salida);
        //Agregamos links a los #
        $salida = preg_replace('/\B#([_a-zA-Z0-9-]+)/','<a href="http://search.twitter.com/search?q=%23$1" onclick="window.open(this.href); return false;">#$1</a>',$salida);

        return $salida;

    }
    //Extrae y publica los tweets del RSS
    public static function TweetReader($url) {
        if (!@simplexml_load_file($url)) {
            echo "Error enlazando a Twitter, intente de nuevo";
        } else {
            $feed = simplexml_load_file($url);
            foreach ($feed->channel->item as $item) :
                echo "<div class=\"rss_twitter\">";
                echo $array['title'] = (RSS_Twitter::TweetFilter($item->title))."<br />".PHP_EOL;
                echo "<a href=\"$item->link\" onclick=\"window.open(this.href); return false;\">".RSS_Twitter::FormatoTiempo($item->pubDate)."</a><br />".PHP_EOL;
                echo "<br /></div>".PHP_EOL;
            endforeach;
        }

    }

}

RSS_Twitter::TweetReader($rss_twitter);

?>

Lo único que nos falta es proveer la variable $rss_twitter que corresponde a la ruta absoluta del canal RSS de la cuenta Twitter que deseamos mostrar y además la cantidad de “tweets” que mostraremos, esa ruta viene siendo algo como por ejemplo:

http://twitter.com/statuses/user_timeline/28505702.rss?count=3

Donde 28505702 es el ID de la cuenta de Twitter y 3 es la cantidad de Tweets que mostraremos.

Espero les sea de utilidad.

ACTUALIZACIÓN 12/07/2010: Le he agregado una validación simple para en caso de que por alguna razón Twitter esté caído.

¿Cuántos enlaces puede crear un servicio acortador de URL?

| Posted in General |

0

¿Se lo han preguntado alguna vez?, ¿no?… yo sí !

No soy matemático, pero soy programador y además de muy curioso, así que me puse a sacar la cuentas.

Este procedimiento aplica también para conocer cuantas combinaciones resultar de mezclar X cantidad de caracteres en una longitud Z de palabras, para formar una contraseña por ejemplo y medir así su “fortaleza”.

Primero partamos de este hecho: la cantidad de combinaciones se calcula: base (cantidad de elementos a combinar) elevado a la longitud de la palabra.

Veamos un ejemplo: números binarios (1 y 0), ¿cuántas combinaciones resultan si tenemos 3 de estos números binarios?

Si no conoces la ecuación seguramente harías esto:

0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1

Y contando vemos que logramos 8 combinaciones !: pero hubiese resultado más fácil si calculamos: 2 elevado a 3 = 8 (¿de dónde saque el 2?… pues ¿cuántos caracteres teníamos a disposición para combinar? 1 y 0, que resultan en 2 caracteres)

Muy bien, supongo que ya entendimos como funciona la ecuación… ahora vayamos a lo que veníamos, ¿Cuantos enlaces puede crear un servicio acortador de URL?.

Usaré como referencia el famoso acortador de URL usado por el mismísimo twitter: bit.ly

Cada enlace único está formado por una combinación alfa-numérica (62 posibles caracteres) y de una longitud de hasta 6 dígitos.

Ok, analicemos:

ESO EQUIVALE A CASI 10 VECES LA POBLACIÓN MUNDIAL DE SERES HUMANOS EN TODO EL PLANETA !

Espero no haberlo aburrido ;)

Twitiquette o cómo comportarse en twitter

| Posted in General |

0

Este es el resultado de mi experiencia con el uso de la red twitter, llegando a determinar un conjunto de normas que a mi juicio ayudan a mantenerse dentro del buen comportamiento y las buenas prácticas al usar dicha red.

De hecho el término Twitiquette se me ocurrió anoche mientras pensaba en escribir estás lineas… pero como cosa rara; siempre alguien más ya pensó en ello xD

Eso si, estas “normas” no están copiadas de ninguna otra parte y son el resultado de mi experiencia personal.

  1. Twitter no es chat. Ni facebook… puede ser cualquier cosa menos un chat… si no tienes una cuenta de quizá se te haga un poco difícil entenderlo; pero una burda explicación podría ser: es como enviar un SMS abierto donde las personas que te siguen pueden “enterarse” de lo que escribiste.
  2. Buenos días, buenas noches. ¿Realmente es relevante ? Muy a pesar de lo que a simple vista pareciera ser de buena educación, resulta que en este mundo donde cada segundo cuenta y estamos bombardeados de toneladas de información que nos llega a cada instante… detenernos ese instante a leer un tweet empíricamente “inútil” es como un insulto.
  3. Dando y dando. Que tu me sigas no significa por regla que yo debo seguirte… de hecho siquiera pensarlo es tonto. En twitter el peso o valor de una cuenta no está en quien eres, sino en que dice o compartes. Tu podrías ser el mismísimo Dios, pero si tus tweets no son interesantes (para mí) pues no te sigo.
  4. Record Guinness. Esto no es una competencia, escribir un mensaje cada 2 minutos equivale a 720 mensajes; si a eso le aunamos que nos siguen unas 500 personas eso equivale a aproximadamente 360mil !!! mensajes donde hemos ocupado el tiempo de esas personas en leer nuestras “pendejadas”. Prácticamente los estamos corriendo !.
  5. No pisotees. No uses twitter como una herramienta de desprestigio… acusar a X o Y usuario, marca o producto es como escupir para arriba…. sin duda alguien más grande con mas followeres que tú te hará lo mismo (y te dolerá). Si alguien no te gusta.. no lo sigas !… si alguien te acosa: bloquealo ! así de fácil.
  6. Cuidado con las listas. Las listas son una nueva e interesante herramienta recientemente creada para agrupar a quienes sigues y poder compartirlo, pero también pueden ser usadas para desprestigiar (ver número 5). Si te piden gentilmente que lo retires de alguna lista que tu has creado… hazlo sin chistar, quien lo solicita tiene sus razones (privadas)… sólo hazlo, a no ser que quieras aparecer en una lista tipo @user/imbecil (espero que twitter considere la posibilidad de que uno pueda des-listarse de listas creadas por terceros).
  7. Se original. No abuses del re-tweet , la idea del re-tweet es que compartas algo que te ha parecido interesante… pero si sospechas que tus followers también siguen a esa fuente de la que te estas copiando.. no existe ninguna necesidad de que lo hagas; de cualquier modo puedes hacerlo, pero no abuses de esa herramienta.
  8. Oh Oh, se acabó el papel higiénico. Parecido al punto número 2 y número 4, pero en este punto lo que resalta es la calidad del contenido de tu mensaje. (debí poner este como el número 1) es uno de los males más grandes de los twitteros inexpertos… hablan de TODO: el perro se hizo pupú, están pasando Los Simpsons por FOX, Goooollll, etc… esa es una manera GARANTIZADA de perder seguidores… después no nos estemos quejando.
  9. Céntrate. ¿Creaste una cuenta de twitter para hablar de Tecnología?, muy bien… entonces porque estás escribiendo sobre lo que almorzaste está mañana?… si tu cuenta es personal (y no con intensiones blogísticas especializadas o comerciales) deberías mantenerte en un ambiente personal (seguidores y seguidos).
  10. Fácil vino, fácil se va. Seguir y ser seguido es algo muy dinámico.. la gente viene y va, algunos se quedan, otros aguantan y otros se van,  es como una caja de bombones… nunca sabes cuál te va a tocar… xD no tenemos razón alguna para enojarnos porque alguien que nos seguía ya no nos sigue… sus razones tendrá y es algo que debemos respetar con humildad.