domingo, 17 de enero de 2010

Acceso a los posts de Blogger desde PHP

En 15 minutitos he montado este snippet para acceder a los posts de Blogger conociendo el ID del blog correspondiente. No está muy depurado pero funciona. El código es este:

$blog_id['miblog1']='01234568901234567';
$blog_id['miblog2']='12345689012345678';
$blog_id['miblog3']='23456890123456789';

function dataURL($id) {
return 'http://www.blogger.com/feeds/'.$id.'/posts/default?max-results=1';
}

function getData($url)
{
if ($handle = fopen($url, 'r')) {
$content = stream_get_contents($handle);
fclose($handle);
return $content;
}
}

function printData($data){
$xml = new SimpleXMLElement($data);
echo $xml->title, '
';
echo $xml->entry->title, '
';
echo $xml->entry->content, '
';
echo $xml->entry->link[4]['href'], '
';
echo $xml->entry->published, '
';
}

foreach ($blog_id as $key=>$value)
{
printData(getData(dataURL($value)));
}

Con esto lo que hacemos es recorrer todos los IDs de blogs que hemos metido como variables al principio y representarlos en la pantalla. Si imprimimos y analizamos lo que devuelve la función getData($url), podemos revisar el XML para ver qué parámetros queremos. La función printData($data) representa los contenidos deseados. Si el contenido incluye código HTML es posible que haya que utilizar alguna función intermedia para hacer que dicho código funcione, porque lo que está almacenado en la base de datos serán entidades HTML en lugar de los '<' y los '>'.

Espero que sea útil para alguien. A mi me ha dado varias ideas de cosas que hacer... Para todo lo demás, consultar la API de Blogger.

NOTA: La URL que obtenemos es la clave en la que hay que especificar qué queremos obtener. En mi caso selecciona el último post publicado. Se puede experimentar con la URL directamente (hay más parámetros en el enlace de la API de Blogger) para ver distintos resultados.

No hay comentarios:

Publicar un comentario