En un nuevo proyecto en el que estoy trabajando he tenido que incluir botones y enlaces para compartir los artículos que creará el administrador de la web. Gracias a estos enlaces o botones los visitantes de la web podrán enviar el artículo a Facebook, Twitter, Linkedin, Google Buzz, etc… os dejo con la recopilación de enlaces, esperando que os resulte de utilidad.
¿Los usamos todos? Deberíamos pararnos un poco a pensar si realmente nos serán necesarios. Si tu contenido es “pro” quizás te interese más Twitter y Linkedin. Si no lo es tanto y es un contenido más generalista, quizá todos menos Linkedin. Cuestión de probar, también. Total, vamos al lío, que me enrollo.
Twitter
No pude encontrar la documentación oficial de Twitter (si alguien tiene a bien pasar la url le estaré agradecido), pero integrar un botón para compartir en Twitter es bastante sencillo.
<a href="http://twitter.com/homestatus=mensaje_que_saldra_antes_del_enlace%20url_del_articulo" title="Comparte la noticia"/>Compartir en Twitter</>
Creo que se entiende bien. En lugar de “mensaje_que_saldra_antes_del_enlace” deberás poner cualquier cosa, por ejemplo “Quizás esto te interese: ” o “Lee esto que mola un cacho”.
Facebook
Gracias a un sencillo formulario podremos crear nuestro botón de “Me gusta” para integrarlo en nuestra web. Facebook ha tomado gran relevancia los últimos tiempos y se revela como un medio muy potente donde dar a conocer nuestros artículos. Lo que no me gusta es que el código generado es un iframe, y tratándose del gran caralibro, ya podrían habérselo currado un poco más.
¿necesitas más información?
Google Buzz
Sí, todavía existe. Podrás crear botones y enlaces de una forma sencilla y rápida. Te ofrece tres tipos de estilo: Botón y contador, sólo botón y enlace. Basta con añadir un enlace y un script a nuestra página. Poco más.
¿necesitas más información?
Linkedin
Éste fue el caso más curioso de todos. Cuando estamos en desarrollo, en mi caso, mi entorno de prueba apunta a http://localhost:3000. Al hacer click en el enlace una vez generado me mostraba un error y era porque Linkedin es listo y no te deja compartir enlaces a localhost. ¿Qué ocurre? Que el mensaje de error no era muy amigable y hasta que te das cuenta de qué está ocurriendo, pasa un buen rato.
http://www.linkedin.com/shareArticle?mini=true&url={articleUrl}&title={articleTitle}&summary={articleSummary}&source={articleSource}
¿necesitas más información?
Vale, todo esto está muy bien, pero…¿cómo ahorramos algo de tiempo y de ruido visual en Rails? Aquí entran en juego nuestros amigos los helpers.
Helpers para generar botones de compartir contenido
Aquí debo agradecer a Ceritium la ayuda, prácticamente los helpers que veréis aquí detallados los hizo él.
Bastaría colocar los helpers en el controlador que nos convenga. Imaginemos que queremos compartir noticias (news). ¿Donde queremos llevar al usuario al hacer click? Al show de la noticia en cuestión – news_url(news). ¿Donde colocamos el helper? Pues en news_helpers.
def share_on_twitter
link_to content_tag(:span,'Twitter'), "http://twitter.com/homestatus=Te%20recomiendo%20que%20leas%20#{news_url(news)}", :title => "Comparte en Twitter"
end
def share_on_buzz
link_to content_tag(:span,'Google Buzz'),"http://www.google.com/buzz/post", :title => "Comparte en Google Buzz", :class => "google-buzz-button", "data-button-style" => "link", "data-locale" => "es"
end
# Nota: headline (título de la noticia), summary (resumen de la noticia).
def share_on_linkedin(news)
url = 'http://www.linkedin.com/shareArticle?mini=true'
url << "&url=#{news_url(news)}"
url << "&title=#{news.headline}"
url << "&summary=#{truncate(news.summary, :length => 200)}"
link_to content_tag(:span,'Linkedin'), url
end
En el caso de Facebook preferí meter el iframe directamente en el show, por ahorrarme tiempo. Pero os animo a crear un helper vosotros mismos :)