Jaxl (Jabber XMPP Library) es una librería que nos permite realizar comunicaciones mediante Jabber (el protocolo de IM que usa Gtalk, entre otros). Permite encriptación TLS, autenticación DIGEST-MD5 y PLAIN, administración de servidor y notificación de GMail, entre otras cosas.
Para mí, uno de los mayores fracasos de Twitter es su API, una limitación de su uso increíble para algo que le podría dar mucho juego a la aplicación. Ahora mismo no sé en cuánto está el límite, pero la posibilidad de realizar una aplicación basada en Twitter es una pesadilla.
Para aquellos que no quieran sufrir lo que hemos sufrido con TwitterPoster (los espacios en blanco es porque la gente actualiza su imagen y no podemos recuperar la de todos los usuarios por el límite en el API de Twitter), les recomiendo usar Twitter mediante CURL.
Os paso un script sencillito que he realizado:
<?php
// Primer hacemos login
$url ="https://twitter.com/sessions";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
// Por si tienen limitación por navegador
curl_setopt($ch, curlOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)");
// Poned una ruta para las cookies
curl_setopt ($ch, CURLOPT_COOKIEJAR, '/temp/');
curl_setopt ($ch, CURLOPT_COOKIEFILE, '/temp/');
curl_setopt ($ch, CURLOPT_POSTFIELDS, "username_or_email=[usuario]&password=[contraseña]");
// Para que funcione el https
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, curlOPT_SSL_VERIFYHOST, 2);
curl_exec ($ch);
// Cargamos el home, porque Twitter añade dos campos ocultos para poder publicar por web
$url ="http://twitter.com/home";
curl_setopt($ch, CURLOPT_URL, $url);
$result = curl_exec ($ch);
// Recuperamos los campos ocultos
preg_match('//', $result, $match);
$authenticity_token = $match[1];
preg_match('//', $result, $match);
$siv = $match[1];
// Insertamos el texto
$res = $url ="http://twitter.com/status/update";
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'siv='.$siv.'&authenticity_token='.$auth.'&status=[texto]');
curl_exec ($ch);
curl_close ($ch);
unset($ch);
?>
¿Qué fallo tiene este script? pues que si cambian el HTML (campos de formulario, …) o las URLs deja de funcionar, pero al menos no tenemos limitaciones. Eso sí, es más costoso para sus servidores y para los nuestros, porque en vez de hacer una llamada, hacemos 3, y en nuestro caso, a parte parseamos una página para obtener dos campos ocultos.
Today the PostgreSQL Global Development Group releases the long-awaited version 8.3 of the most advanced open source database, which cements our place as the best performing open source database. Among the performance features you’ll be excited about in 8
Algo común en muchas de las páginas que visitamos, por ejemplo en foros, es la necesidad de registrarnos para poder acceder a los contenidos. El tutorial que ponemos a continuación explica muy bien como hacerlo paso a paso:
Validar la dirección de email antes de que se puede loguear: usando el email anterior, el cual contiene el id de usuario y la contraseña encriptada para poder modificar el usuario y señalarlo como activado. La verdad es que mandar la contraseña encriptada no es algo que me parezca buena idea, porque, que yo sepa, el algoritmo md5 se puede romper por fuerza bruta de forma más o menos sencilla (con un poco de paciencia), y es posible que la url para activar la contraseña quede guardada en el historial y otra persona que use el mismo ordenador acceda a tu contraseña.
Utilidad para recuperar la contraseña: realmente tiene que crear una contraseña nueva, porque como la anterior está encriptada, no se puede saber cual es.
photoshop listsLists have been around for a long while and are a hot topic today. I’ve even compiled some myself for my Photoshop Roadmap blog. They are perfect candidates for massive and steady traffic, and they are an interesting, if not fun, reading
Let’s build a simple form with 2 fields: email address, and password. We want to focus on client side validation, so we will add a second password field to compare against and a password strength field. Password strength is becoming more and more popula
En SitePoint siempre sacan algún tutorial útil y que nos puede facilitar mucho nuestros desarrollos. En este caso se trata de listas de correos, quizás con el tema de las feeds, ya no se usen mucho, pero conozco a unos cuantos que aún tiran de ellas.
A grandes rasgos se trata de lo siguiente:
Un HTML dentro de un PHP que recibe las direcciones de correo de los usuarios.
Un Javascript que leerá cada cierto tiempo el formulario y realizará una llamada AJAX al servidor con la dirección de correo introducida.
Un script PHP que recibe la dirección, comprueba si es correcta, la almacena en la base de datos y manda un mensaje de que todo ha ido bien o de que ha habido error a la página web para que la muestre al usuario.