He estado leyendo bastantes opiniones sobre HipHop de Facebook e iba a hacer un listado pero me he encontrado con el trabajo ya hecho en PHPDeveloper.org:
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.
Elgg es una aplicación open source que permite crear redes sociales de forma sencilla y con bastantes características que completarán nuestra web.
Entre las características del administrador nos encontramos con administración de usuarios, objetos, ficheros y del sitio, gráficas con relaciones de los usuarios, múltiples sitios por instalación, internacionalización, sistema de etiquetas, ACL, vistas, eventos, plugins y API para widgets.
Además permite RSS, FOAF, XFN, OpenId, OpenSocial, OAuth, JSON, Ajax con jQuery, sistema de caché que permite memcached.
Lógicamente, el usuario final dispondrá de su perfil, panel, feeds de su actividad, preferencias, blog, aplicaicones OpenSocial, repositorio de ficheros, foros y mucho más.
Elgg necesita PHP 5.2+, Apache, GD, MySQL 5+ y mod_rewrite. A parte OpenSocial necesita Mcrypt y la librería PHP SOAP. Elgg
Vía / WebAppers
PHPMaker es una aplicación para Windows que automatiza la generación de scripts para PHP. A partir de una base de datos MySQL, genera los scrips necesarios para ver, buscar, editar y borrar registros de las tablas.
Diseñado para ofrecer gran flexibilidad, dispone de muchas opciones que consiguen diseñar tu aplicación según tus necesidades. La generación de código es limpio y fácil de personalizar, pudiendo ser ejecutado en distintos tipos de máquinas. PHPMaker
VÃa / DirTik
Si queremos que el contenido de nuestros formularios de contacto generados con el plugin Contact Form 7 sean traducidos, tan sólo deberemos añadir a nuestro functions.php lo siguiente:
function translate_shortcode($tag) {
if (isset($tag['values']) && count($tag['values']) > 1) return __($tag['values'][1], $tag['values'][0]);
return "";
}
wpcf7_add_shortcode('translate', 'translate_shortcode', true);
Una vez añadido esto, podremos incluir en nuestro formulario lo siguiente:
[translate null "diccionario" "Texto que quiero traducir"]
El valor null es porque el plugin busca en el primer parámetro el ID del campo, el segundo campo es el nombre de diccionario que hayamos incluido con la función load_theme_textdomain, y por último el texto que vayamos a traducir.
Me ha gustado el ejemplo para mostrar en tu web las visitas y las páginas vistas de tu web como muestra Feedburner los suscritores que tienes en el feed. Para mostrarlo haremos uso de la librería GAPI, la cual accede a los datos que ofrece Google Analytics:
Facebook es una aplicación que está muy de moda en estos momentos (no entiendo por qué) y aunque su desarrollo no es muy complicado, obtener la información de cómo hacer las cosas y encontrar algo en su documentación puede ser algo difícil. Su Wiki es un horror, los ejemplos escasos y los foros no muy útiles. Por ello, quien necesite encontrar ejemplos y tutoriales puede venirle bien esta lista:
Falta la más interesante, la de Rasmus Lerdorf 🙂
http://www.readwriteweb.com/archives/rasmus-lerdorf-php-hiphop-facebook.php
Como siempre, la opinión de Rasmus es muy interesante
Gracias David, añadida