Conectar WordPress con Facebook

27 octubre, 2009

La semana pasada nos planteamos un reto: publicar en Facebook cada uno de los posts de la Red de Blogs de Montaña y Deportes de Aventura (RBM). Primero creamos una página en Facebook para la RBM y luego buscamos un plugin que realizara la tarea requerida.

El primer plugin que apareció era Wordbook. Tenía muy buena pinta, pero tuvimos dos problemas: imposible hacerlo funcionar con WordPress 2.8.5 y no permitía publicar en páginas de Facebook (sólo es posible en el minifeed). Como no nos convencía, decidimos seguir buscando.

Fue más complicado encontrar Facepress (fíjate en el juego de nombres). Facepress es un plugin muy evolucionado que permite enviar a Facebook el título y un enlace a cada artículo que se publica en el blog. No es una maravilla, pero realiza su cometido perfectamente. Además permite publicar en páginas de Facebook y diferenciar entre usuarios (cada usuario de WordPress puede enviar la información de sus publicaciones a su propia cuenta de Facebook).

El funcionamiento interno del plugin Facepress se basa la simplificación. Se conecta mediante CURL a la página de Facebook para móviles, mucho más simple y sin historias de AJAX, Javascript y CSS. Desde ella se pueden publicar textos en casi todos los lugares, pero no se pueden adjuntar enlaces o enviar imágenes, por ejemplo.

Modificaciones

Por el diseño tan simple con el que se ha concebido Facepress, es muy fácil modificarlo. En nuestro caso necesitábamos dos cambios:

  1. Todos los usuarios deben publicar en una misma página.
  2. La publicación en el “muro” de la página debe incluir un pequeño resumen del artículo y algo de formato adicional.

Ambos cambios requieren la modificación del fichero Facepress-updater.php que es el kernel del plugin (el que conecta con Facebook cuando se publica un nuevo post)

El primer cambio es muy fácil de conseguir. Se debe sustituir la línea:

$optionIndex = array_search('wplog:' . $authorLogin, $Facepress_data);

por

$optionIndex = array_search('wplog:admin', $Facepress_data);

Con esto conseguimos que se elija siempre los parámetros del usuario “admin”. Así que solo con guardar los datos en ese usuario es suficiente.

El segundo cambio es también sencillo. Hay que cambiar la variable $title con cualquier valor que se te ocurra. En nuestro caso ha sido:

$title = urlencode($blogname).": \"".urlencode($postTitle)."\"%0A%0A".urlencode($postExcerpt)."%0A".urlencode($postUrl);

Un pequeño truco: los “intro” o retornos de carro (vaya traducción literal!) se pueden trasmitir con el carácter especial %0A. Cuidado con el urlencode() que puede hacer que el resultado no sea nada agradable (recomiendo llevarlo al lugar donde se establece el valor de $title).

Este es el aspecto de un post con el plugin modificado.

Esto es todo. El resultado no es demasiado espectacular, pero funciona. Esperemos que alguien usando la misma técnica pero con la página principal o con el API de Facebook pueda conseguir que los enlaces se adjunten como enlaces y no como simples mensajes de texto.

Be Sociable, Share!

Tags: , , , , , ,
Posteado en Tecnologia | Comentarios (6)

6 Respuestas a “Conectar WordPress con Facebook”

  1. Nacho dice:

    ¡¡¡ Simplemente genial !!!

    He estado probando wordbook, que me mostraba el blog dentro de un iframe en la aplicación que creas pero no en el muro.
    Con facepress y las modificaciones del código que indicas, en una patada está hecho.
    Graciasl mil….
    Ciao

  2. Nacho dice:

    Por cierto, alguna idea para hacer exactamente lo opuesto, es decir, el post que publicas en el muro de Facebook aparezca como post en mi blog wordpress???

  3. admin dice:

    Mira a ver si un plugin llamado StatusPress es lo que buscas. No lo he probado pero me suena que es el único que importa desde FB a WP

  4. Javier dice:

    Cambiar el titulo donde se hace, en el mismo fichero que lo otro?
    Resulta que me da una cantidad de fallos increibles.Un saludo

  5. Ivan dice:

    Creo que han sacado una nueva versión del plugin y es posible que haya cambiado algo. Si tengo tiempo actualizaré la información con la nueva versión del plugin.

  6. Wilfredo dice:

    I love it whenever people come together and share opinions.
    Great blog, keep it up!

Dejar un comentario