Tag: api (1 posts)
Cosas que no funcionan en la api de facebook (Parte I)
Publicado el 12 Feb 2010
Creo que cualquiera que haya desarrollado con la api de facebook vera que éste tema da mucho de sí, de ahí que lo haya dividido en partes y cada día voy a hablar de algún punto en particular.
Ampliamente usado en muchísimos sites pero con una gran pega (al menos para algunos): no permite la pre-moderación de comentarios, bueno, o si según ellos, ya que permiten a partir de la variable numposts fijar el número de comentarios máximo mostrado por el widget, con lo que poniendo éste numero a 0, nunca se mostraran los comentarios de los usuarios en el widget en el momento de hacerlos, y se podría realizar una premoderación sobre ellos. Pues bien, esto no funciona en el widget. Por mucho que nos empeñemos en cambiar ese número, se lo pasa por ahí, y siempre muestra el número de comentarios por defecto, en este caso 10.
Ésto esta reportado en su foro de desarrolladores desde hace por lo menos un mes, pero hasta la fecha no han hecho mucho caso...
Una funcionalidad muy ligada a la anterior es la de consultar a través de FQL todos los comentarios que los usuarios han dejado en nuestro site con el widget. No esta soportado por la api un método para poder recuperar todos los comentarios de un site, sino que hay que ir pidiendo los comentarios para cada uno de los xid con los que hayamos registrado nuestros widgets de comentarios. Pero según la documentacion del método usado para pedir los comentarios, Comments.get, se puede hacer una query directamente a la tabla de comentarios para pedir los comentarios de todos los xid que queramos, pudiendo bajar de una vez todos los comentarios del site. Pues bien, otra de las cosas que no funcionan, o más bien que su documentación dice que se puede hacer y no es así. Según su documentación, teniendo una sesión valida, podríamos hacer lo siguiente:
session.post("facebook.fql.query",:query => "select xid,text,id,fromid,time from comment
where xid IN (#{ids.join(',')})")
donde el array ids contendría todos los xid usados por nuestros widgets de comentarios. Si ese array contiene mas de 20 elementos (aproximadamente, tampoco es una cienca exacta :) ) ese petición falla, devolviendo un error. Por lo tanto tenemos que escalonar nuestras peticiones limitando en cada query a 20 (mas o menos) el numero de xid pedidas.
session = Facebooker::Session.create
offset = 0
while offset <= Item.count do
items = Item.find(:all,:select => :id, :limit => 20, :offset => offset).map(&:id)
session.post("facebook.fql.query",:query => "select xid,text,id,fromid,time from
comment where xid IN (#{items.join(',')})")
offset += 20
end
Si en nuestro site, tenemos mucho contenido, con lo que tendremos muchísimos widgets de comentarios, ésta tarea puede ser laboriosa y costosa en tiempo y recursos.
Una última funcionalidad de la que no te puedes fiar mucho tampoco, es la posibilidad de que te notifiquen cada vez que algún usuario comenta en tu site con el widget. Se supone que te mandan una notificación a tu cuenta de facebook, cosa que yo he visto funcionar algunas veces y otras muchas no.
Hay un hilo de foro de desarrolladores bastante interesante alrededor del widget de comentarios, que intenta aclarar muchas de las dudas que los usuarios tienen alrededor de él, y que ha juzgar por el numero de respuestas del hilo, son muchísimas :) ...
¿Para cuando un simple método que nos devuelva todos los comentarios de nuestro site? ¿Tan difícil es?
Y vosotros, ¿os habeís encontrado con mas fallos básicos en la api de facebook?