Desarrolladores
Recibir el contenido en tu web
Guía paso a paso para llevar los artículos de Blogenia a tu propia web: leer con la API, reaccionar a un webhook o dejar que Blogenia publique en tu API.
Hay tres formas de que los artículos de tu blog aparezcan en tu propia web. Elige según quién debe tomar la iniciativa.
| Opción | Quién inicia | Úsala cuando… | Necesitas |
|---|---|---|---|
| A. Leer con la API | Tu web pide los artículos | Quieres mostrar el blog con tu diseño y te basta con refrescarlo cada pocos minutos. | Una clave de API. Starter o Pro. |
| B. Webhook + API | Blogenia avisa y tu web pide el artículo | Quieres enterarte al momento de cada publicación para guardarlo, avisar o regenerar páginas. | Un webhook, una clave de API y una URL https en tu servidor. Starter o Pro. |
| C. Publicar en tu API | Blogenia envía el artículo a tu API | Tu web ya tiene una API para crear artículos y quieres que Blogenia los publique allí, incluidas las ediciones y los borrados. | Implementar el contrato en tu servidor. |
A. Leer con la API
- En el panel, abre API y pulsa Crear clave. Copia la clave: solo se muestra una vez.
- Guárdala en tu servidor como variable de entorno
BLOGENIA_API_KEY. Guarda también el ID del blog enBLOGENIA_BLOG_ID. - Pide los artículos desde el servidor y guárdalos en caché unos minutos, para no gastar tu límite en cada visita.
- Para el contenido de un artículo, pide
GET /articles/{id}(Artículos).
const BASE = 'https://api.blogelia.com/v1';
const TTL_MS = 5 * 60 * 1000;
let cache = { at: 0, data: null };
export async function latestArticles() {
if (cache.data && Date.now() - cache.at < TTL_MS) return cache.data;
const res = await fetch(
BASE + '/blogs/' + process.env.BLOGENIA_BLOG_ID + '/articles?limit=10',
{ headers: { Authorization: 'Bearer ' + process.env.BLOGENIA_API_KEY } },
);
if (!res.ok) {
if (cache.data) return cache.data; // si falla, sirve lo último que tenías
throw new Error('HTTP ' + res.status);
}
const body = await res.json();
cache = { at: Date.now(), data: body.data };
return cache.data;
}B. Webhook y lectura del artículo
- Crea una clave de API como en la opción A.
- Expón en tu servidor una URL
httpsque recibaPOST(por ejemplo/webhooks/blogenia). - En el panel, en Webhooks, pulsa Añadir webhook, pega la URL y copia el secreto (
whsec_…). Solo se muestra una vez. - Guarda el secreto como variable de entorno
BLOGENIA_WEBHOOK_SECRET. - Pulsa Enviar prueba y comprueba que tu servidor responde
200. - En cada
article.published, verifica la firma, responde200y pide el artículo completo con suid.
El código completo de isValid está en Webhooks, con Node, Python y PHP.
// isValid(rawBody, headers): ver "Verificar la firma" en Webhooks
app.post('/webhooks/blogenia', express.raw({ type: 'application/json' }), (req, res) => {
const rawBody = req.body.toString('utf8');
if (!isValid(rawBody, req.headers)) return res.sendStatus(400);
res.sendStatus(200); // responde ya; trabaja después
const event = JSON.parse(rawBody);
if (event.event !== 'article.published') return;
const id = event.data.article.id;
fetch('https://api.blogelia.com/v1/articles/' + id, {
headers: { Authorization: 'Bearer ' + process.env.BLOGENIA_API_KEY },
})
.then((r) => r.json())
.then((article) => saveInYourDatabase(article)) // tu código
.catch((err) => console.error(err));
});C. Publicar en tu propia API
- Implementa en tu servidor las rutas del contrato: comprobar, crear, actualizar y borrar. Parte del receptor de ejemplo.
- Crea una clave secreta para Blogenia y guárdala en tu servidor como variable de entorno
BLOGENIA_TOKEN. - En el panel, abre Blog y la pestaña Publicación. Elige API propia, escribe la dirección de tu web, pega la clave como Clave de acceso y guarda.
- Comprueba la conexión. Si va bien, cada artículo que se publique se enviará a tu API.
Para una prueba rápida, arranca el receptor de ejemplo de Publicar en tu propia API detrás de un túnel https.