Contenido

Bitacoras.com abre su API pública

26 mar

+ 2

Hoy Bitacoras.com ha abierto al público su API pública que nos permitirá disfrutar de las posibilidades que toda la información dela que disponen. Sin duda es una gran noticia ya que una de las bazas con la que juegan Bitacoras es que disponen de una gran cantidad de información relevante y es un gran paso a delánte para todos el que la pongan a nuestra disposición.

He tenido el privilegio, junto a Marcos Besteiro de PropiedadPrivada de realizar una serie de pruebas sobre la API (antes de abrirla al público) y me ha sorprendido la velocidad de respuesta y la facilidad de uso que han conseguido para las peticiones. Sin duda es una herramienta digna de explotar.

¿Que podemos obtener?

Basta con entrar en la documentación de la API para ver las grandes posibilidades que nos están brindando.

  1. Portada
  2. Canales
  3. Buscar
  4. Geo
  5. Recomendaciones
  6. Descubrimientos
  7. Sigue a
  8. Le siguen
  9. Comunidad
  10. Comentarios
  11. Recibidos
  12. Inbox
  13. Top bitacoras
  14. Top usuarios

Estos son las opciones de las que podemos obtener datos para nuestras aplicaciones. Las que mediante una simple petición HTTP nos permite realizar la petición condicionando el formato de respuesta que deseemos:

  • JSON
  • XML
  • PHP
  • RSS
  • ATOM

Marcos, nos deslumbra con una serie de ejemplos creados apartir del uso de la API, para mostrarnos algunas posibilidades que nos ofrece la API.

Mi granito de arena

Para hacer más fácil las peticiones, os dejo aquí la función que monté para hacer las pruebas, es muy sencilla de usar (como veremos en el ejemplo).

function get_from_bitacoras($que) {
		$methods = array("portada", "canales", "buscar", "geo", "recomendaciones", "comentarios", "sigue_a", "le_siguen", "comunidad");
		extract($que);

		if (!in_array($method, $methods)) die("Método no existente");
		if (!isset($params["key"]) || empty($params["key"])) die("Necesitas una KEY");

		$curl_handle=curl_init();
		curl_setopt($curl_handle,CURLOPT_URL,"http://api.bitacoras.com/".$method);
		curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2);
		curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1);
		curl_setopt($curl_handle, CURLOPT_POST,1);
		curl_setopt($curl_handle, CURLOPT_POSTFIELDS,$params);
		curl_setopt($curl_handle, CURLOPT_FOLLOWLOCATION  ,1);
		curl_setopt($curl_handle, CURLOPT_HEADER,0);
		$buffer = curl_exec($curl_handle);

		curl_exec($curl_handle);
		curl_close($curl_handle);
		return $buffer;
}

Como podeis ver, es muy sencilla . Simplemente nos comprueba que el método que pasemos por parámetro sea uno de los indicados en la API. Veamos un ejemplo de uso :D

define("BIT_KEY", "AQUI_TU_KEY");
define("BIT_CACHE_TIME", 60 * 60 * 24); // 1 Día
define("BIT_CACHE_DIR", "cache/"); // /cache/

function save_cache($file, $content){
	file_put_contents($file, $content);
}

function get_comments_bitacoras($guid = ''){
		if (empty($guid)) return;
		$file = BIT_CACHE_DIR.md5($guid);
		if (file_exists($file) && filemtime($file) + BIT_CACHE_TIME < time()) {
			$respuesta = file_get_contents($file);
		} else {
			$arr = array(
				'method' => 'comentarios',
				'params' => array(
					'key' => BIT_KEY,
					'format' => 'php',
					'url' => urlencode($guid)
					)
				);
			$respuesta = get_from_bitacoras($arr);
			save_cache($file, $respuesta);
		}

		$return = unserialize($respuesta);
		if ($return->status == 'success') return $return->data;
		else return array();
}

Esta función, que está pensada para integrarse con WordPress, nos permite obtener los parámetros que nuestra noticia haya tenido en bitacoras.com. Este código podría ir en el fichero functions.php de nuestro theme. Y despues de añadir nuestra KEY y crear sinó existe el directorio cache/ en la raiz de nuestro WordPress. La función lleva incorporada un pequeño sistema de caché mediante fichero para no lanzar una petición por visita, de esta forma estamos haciendo una caché de 24 horas sobre cada una de las peticiones (osea por noticia).

Para invocar la función, únicamente tendremos que usar el siguiente código, podemos insertarlo en el fichero comments.php de nuestro theme:

$bit_comments = get_comments_bitacoras($post->guid);
foreach($bit_comments as $bit_comment){
	.....
}

De esta forma estamos obteniendo los comentarios y los recorremos uno a uno para ir pintándolos en nuestro theme. Para ello simplemente tenemos que conocer los parámetros devueltos con los que podemos mostrar la información de los comentarios.

  • autor: nombre completo del autor
  • alias: alias en Bitacoras.com del autor
  • avatar: imagen del usuario (32x32px)
  • fecha: fecha de publicación
  • texto: contenido filtrado, con etiquetas HTML

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.