jueves, 18 de octubre de 2012

Los gadgets y scripts de Twitter que no funcionan

Son varias personas las que me preguntan por lo mismo así que no hay más remedio que volcar la respuesta en una entrada aunque, tal como les he dicho, no estoy seguro que la solución sea permanente o sólo temporal (en realidad, casi estoy seguro que será temporal).

El problema se genera con ciertos gadgets o scripts que deberían mostrar los últimos tweets de Twitter y que funcionaban correctamente hasta hace unos días pero que han dejado de hacerlo de pronto, sin que mediara explicación alguna.

Probablemente, esto se debe a los cambios que está haciendo Twitter en su API que es la forma en que nosotros le solicitamos que nos devuelva cierta información. En sus páginas, ellos dicen que la versión 1 de ese API está siendo reemplazada por la versión 1.1, recomiendan "mudarse" pero, me temo que las explicaciones al respecto son bastante crípticas, por lo menos para mis neuronas.

De todos modos, cualquiera que tenga algún script que use una dirección url de este tipo:
http://twitter.com/statuses/user_timeline/nombreusuario.json
se encontrara con una respuesta vacía, un error; basta poner ese tipo de dirección en el navegador para verlo; dirá algo como:
{"errors":[{"message":"Sorry, that page does not exist","code":34}]}
La solución, por ahora, es cambiar ese tipo de dirección por esta otra:
https://api.twitter.com/1/statuses/user_timeline/nombreusuario.json
Aplicado a un script, en lugar de esto:
<script src='http://twitter.com/statuses/user_timeline/nombreusuario.json?callback=twitterCallback2&count=3' type='text/javascript'></script>
deberíamos poner esto:
<script src='https://api.twitter.com/1.1/statuses/user_timeline/nombreusuario.json?callback=twitterCallback2&count=3' type='text/javascript'/></script>
que es lo que se mostraba en esta entrada y algo que, probablemente, tal como advertí al principio, también deje de funcionar el algún momento:



¿Por qué me imagino que es una solución temporal? Porque la documentación de Twitter dice que deberíamos usar el nuevo API pero da la impresión que ese nuevo sistema requerirá algún tipo de autentificación via OAuth; es decir, es probable que llegue un momento en que sólo podamos agregar un widget generado por ellos.

Esto, tampoco es demasiado complicado de hacer; basta entrar en nuestra cuenta e ir a esta página: https://twitter.com/settings/widgets

Allí hay un botón Crear Widget que nos lleva a otra página con distintas opciones de configuración y una de ellas implica indicar el dominio o dominios de los sitios web en donde se va a insertar ese widget. Una vez creado, nos darán el código que podremos pegar en cualquier parte:
<a class="twitter-timeline" href="https://twitter.com/nombreusuario" data-widget-id="xxxxxxxxxx">Tweets por @nombreusuario</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
Esto es algo que podemos hacer tanto para nuestra timeline como para los favoritos, cualquier lista o búsquedas diversas.

No hay comentarios:

Publicar un comentario