Como publicar en muros de facebook desde nuestro website Drupal
En el pasado DrupalDay de Barcelona, varios usuarios de Drupal.cat me abordaron preguntándome sobre la publicación en muros de Facebook. Dado que por falta de tiempo, en mi exposición del pasado 5 de mayo en el Citilab, no pude abordar este tema.
Voy a aprovechar esta entrada de blog para arrojar algo de luz sobre las publicaciones en muros de Facebook desde nuestros sites Drupal. Veréis que no es excesivamente complicado lograr que se publique nuestro contenido en muros de usuarios de Facebook, tanto al generar contenido por nuestra parte, como al generar comentarios por parte de nuestros usuarios.
Para publicar en muros de Facebook de forma sencilla y limpia uso un submódulo que viene incluido dentro de fbconnect. Desconozco si ha sido voluntario o no por parte del autor, este submódulo no va a aparecer en la lista de módulos a activar por Drupal hasta que no efectuemos un cambio en el archivo fbconnect_stream_publish.info que se encuentra dentro del directorio fbconnect_stream_publish dentro de fbconnect.
Cuando descargamos la última versión del módulo fbconnect para Drupal 6, si editamos el archivo .info que he mencionado anteriormente veremos que incluye la línea
package = "Facebook Social"
Esta línea hace referencia al módulo “Facebook Social Plugins Integration”, aunque el módulo en cuestión no la necesita para nada. Como anteriormente ya he explicado lo sencillo y cómodo que resulta delegar toda la tarea de maquetación de plugins hacia el themer de nuestro website Drupal sin necesidad de ningún módulo extra, prefiero editar ese archivo.info a instalar un módulo que no voy a usar. Para ello simplemente debemos cambiar en la linea que "Facebook Social" por "Authentication" que es el grupo al que pertenece fbconnect por defecto.
package = "Authentication"
Una vez efectuamos el cambio subimos de nuevo el módulo a nuestro servidor y veremos que ahora si nos aparece en la lista de módulos disponible para activar en el mismo grupo que fbconnect.
Aunque al habilitarlo aparentemente no haya sucedido nada, realmente no es así. Simplemente debemos configurarlo desde el menú de tipos de contenido (/admin/content/types). Editamos el tipo de contenido donde deseemos usar el stream y veremos una nueva opción llamada Facebook Stream Publish.
El módulo dispone de 4 opciones a elegir:
- Disable publishing - Deshabilitado. Esta opción viene por defecto.
- Publish nodes on comments - Publica nodos en el muro del autor y comentarios en el muro de quien comenta, siempre que se hayan logueado usando fbconnect.
- Publish only nodes - Publica solo los nodos pero no los comentarios.
- Publish only comments - Publica solo comentarios.
Una vez hayamos guardado los cambios, según que opción hayamos marcado. Nos aparecerá una nueva checkbox denominada "Share on facebook", tanto al crear contenido como al generar un comentario. Si la marcamos, al guardar contenido o un comentario nos aparecerá un popup de facebook solicitando si realmente deseamos compartir en nuestro muro de facebook. (Debe hacerse asi de cara a los usuarios, dado que esta en la normativa de facebook el avisar al usuario antes de efectuar un stream en su muro.)

Como podeis observar, resulta un poco tosca la forma en que por defecto el módulo publica en el muro de facebook. Para ganar visibilidad prefiero asociar una imagen al contenido que estamos publicando en facebook. Al igual que hice en su dia con el streamfb del módulo DrupalforFacebook, me asigné una incidencia abierta en el módulo fbconnect para compartir las modificaciones que hice en este submódulo.

Para aquellos que no suelen pelearse con código php en Drupal, básicamente lo que hice fué asociar un campo imágen al tipo de contenido del site Drupal e indicarle al módulo que use dicha imágen cuando se comparte el contenido en los muros de facebook. Para aquellos que siguen este blog, les confirmo que dicho campo imagen es el mismo que uso en el módulo personalizado OpenGraph Metatags. Y como veis, el resultado es bastante mas atractivo visualmente hablando.
Os dejo la descarga del módulo personalizado, simplemente debereis descargarlo, descomprimirlo y sustituirlo por el que lleva el fbconnect dentro. Para usarlo debereis descargar los módulos imagefield, filefield y CCK (Si no los habeis usado nunca, mejor leeros la documentación u ojead el video que dejo al final ;) y una vez habilitados, crear un campo llamado field_imagefb de tipo imagen, en el tipo de contenido que deseeis usar para publicar en muros de facebook. Le he incluido dependencias al archivo info, para que os requiera instalar los módulos imagefield, filefield y CCK.
Podeis tomar este video de referencia si no sabeis como crear campos con CCK en Drupal 6. Como podeis ver en el video no es para nada complicado. Ni que decir tiene que todas las cadenas las encontrareis en ingles, y pueden buscarse y traducirse sin problema. ;)
| Adjunto | Tamaño |
|---|---|
| fbconnect_stream_publish.zip | 6.54 KB |

