Una de las necesidades más comunes en proyectos de portales públicos en SharePoint 2010 es la de poder enviar página a las principales redes sociales.
En ENCAMINA hemos desarrollado un webpart bastante personalizable (tenéis más info aquí), y quería compartir un par de consejos por si necesitáis hacer algo parecido.
La mayoría de las redes sociales, ofrecen una URL con unos determinados parámetros, para poder enviar lo que quieres publicar. Las URLs de algunas de las redes sociales más comunes, son:
RED | URL | PARAMS |
http://www.facebook.com/sharer.php | u=url_de_la_página | |
http://twitter.com/home | status=Mensaje: url | |
Delicious | http://del.icio.us/post | url=url.com&title=titulo_del_favorito |
http://www.linkedin.com/shareArticle | url=http://url&title=mensaje |
Siendo que tenemos que usar parámetros en la URL, y algunos de esos parámetros pueden ser otras URLs, es posible que nos encontremos con algunos problemas a la hora de publicar, como puede ser el tamaño máximo del mensaje, o algunos caracteres no soportados. Para evitar esto, por un lado, recorta siempre el mensaje a publicar a una longitud fija. Por lo que he leído en este enlace: http://stackoverflow.com/questions/417142/what-is-the-maximum-length-of-a-url no parece haber un máximo definido como estándar, pero en este enlace, tenemos un máximo para IE: http://support.microsoft.com/kb/208427 (aquí parece haber otros valores para otros navegadores: http://www.boutell.com/newfaq/misc/urllength.html). En cualquier caso, yo os aconsejo recortar a unos 500 caracteres el mensaje.
Para publicar URLs, probablemente la mejor opción para evitar problemas sea utilizar un acortador de URLs. Yo he utilizado bit.ly, que es muy sencillo de utilizar, y tiene un wrapper para .NET también muy fácil de usar. Hay varios wrappers para .NET, yo he utilizado este: http://bitly3.codeplex.com/SourceControl/list/changesets (Nota: para usarlo desde SharePoint, tendremos que firmarlo de forma segura).
Para usar la API de bit.ly, hay que darse de alta en: http://bit.ly/a/sign_up y conseguir una ConsumerKey. Una vez obtenida la Key, podemos acortar una URL con este simple código:
1 |
<span style="color: #0000ff">private</span> <span style="color: #0000ff">string</span> GetShortUrl()<br />{<br /> String url = Request.Url.AbsoluteUri;<br /><br /> <span style="color: #0000ff">try</span><br /> {<br /> bitly.bitly.bitly bitlyService = <span style="color: #0000ff">new</span> bitly.bitly.bitly(_bitlyUser, _bitlyKey);<br /> String shortenUrl = bitlyService.shorten(url);<br /> <span style="color: #0000ff">return</span> shortenUrl;<br /> }<br /> <span style="color: #0000ff">catch</span> (Exception)<br /> {<br /> <span style="color: #0000ff">return</span> url;<br /> }<br />} |
Otra cosa a tener en cuenta. Si buscáis por ahí como publicar en facebook, veréis que algunos sitios añaden más parámetros además de la URL. Por lo que he podido comprobar, Facebook ignora el resto de parámetros, ya que lo que hace Facebook es abrirse la página y leer lo meta-tags de TITLE y DESCRIPTION. Lo tenéis muy bien explicado en este enlace: http://stackoverflow.com/questions/353520/facebook-sharer-pass-in-a-comment
En otro post veremos como meter el tag DESCRIPTION en la master de un sitio de publicación
Espero que os sirva.
Saludos!!!
19 mayo, 2011 at 9:21 am
Muy útil Luis, gracias por el post.
Dos detalles:
– La longitud máxima de la url, y es su caso de los parámetros que se pasan por Querystring, según la especificación es de 1024.
Si bien es cierto que la mayoría de navegadores soportan más, muchos servidores limitan la recepción a los 1024 mencionados, y según el nivel de paranoia del administrador del sitio, incluso a 255. El objetivo de esa limitación es evitar ataques de tipo «buffer overflow».
Para los envios POST, el límite está en Megas, pero también se puede limitar en el navegador, en el servidor http, y en el ASP.Net. ¡Viva la redundancia!
– Para publicar cosas en Facebook, si tenemos acceso al código de la página publicada, os recomiendo mirar el protocolo O-Data, porque FB lo aprovecha muy bien para esos casos. Te dejoun par de enlaces por si quieres echarle un vistazo: http://www.odata.org/producers y http://www.slideshare.net/shawnwildermuth/introduction-o-data
19 mayo, 2011 at 3:40 pm
Gracias por el apunte!!
Un saludo.