America/New_York
Proyectos
/
Iniciar un proyecto
Disponible ahoraChatea conmigo
Proyectos

Instafeed – API de Feed de Instagram Multi-Tenant y Widget Embebible

Imagen principal del proyecto
Avatar
February 15, 2026

Registro de entrega

Fecha del registro: 15 de febrero de 2026. La tecnología y las capturas describen la versión entregada según quedó documentada en esta fecha. Cualquier observación de rendimiento corresponde al mismo registro puntual. El sitio enlazado puede incluir cambios posteriores realizados por el cliente u otros proveedores.
Instafeed es un agregador de feeds de Instagram autoalojado construido para reemplazar los servicios de embed de pago en los sitios de los clientes de la agencia. La plataforma provisiona a cada cliente con una clave API única, gestiona la autenticación OAuth de Instagram en su nombre y expone un endpoint público de JSON que cualquier sitio web puede consumir, sin exponer claves secretas al cliente. Ejecutándose como un Cloudflare Worker en el edge, Instafeed entrega tiempos de respuesta menores a 100ms a nivel global mientras almacena en caché los resultados del feed durante una hora para evitar los límites de tasa de Instagram. Un script de embed complementario (/embed.js?client=slug) convierte cualquier sitio estático en un escaparate de Instagram sin dependencias de frontend. Cada cliente recibe un slug único, una clave API y un token de invitación. El panel de administración gestiona el ciclo de vida completo del cliente: creación, asignación de tokens, rotación de claves API y eliminación. Los datos del cliente se almacenan en una base de datos Cloudflare D1 con tokens de acceso de Instagram encriptados con AES-GCM. Los clientes se autentican a través de un portal dedicado /connect donde otorgan a la app acceso a su cuenta de Instagram Business o Creator. Los tokens se encriptan en reposo usando un secreto ENCRYPTION_KEY y se refrescan automáticamente mediante un cron job diario antes de su expiración. El endpoint /feed/:slug devuelve datos normalizados de publicaciones, imágenes, videos, subtítulos y marcas de tiempo, filtrados según las necesidades específicas del cliente. Las respuestas se almacenan en caché en Cloudflare KV durante una hora, con headers X-Cache: HIT/MISS para depuración. Nunca se exponen secretos de Instagram al cliente. El script /embed.js?client=slug entrega un componente listo para usar. El uso es simple: <div data-instafeed="client-slug"></div>. El widget renderiza una cuadrícula responsiva de publicaciones recientes con expansión opcional de lightbox, completamente del lado del cliente sin necesidad de pasos de build. Un cron job programado de Cloudflare Worker se ejecuta diariamente a las 8 AM UTC, identificando todos los tokens que expiran en 10 días y refrescándolos a través de la API Graph de Instagram. Esto garantiza cero intervención manual y ninguna caída repentina del feed. Los administradores generan enlaces de invitación con tiempo limitado (expiran en 48 horas) para nuevos clientes. Cada invitación envía una plantilla HTML de correo con un enlace de configuración. El flujo guía a los clientes a través de OAuth, generación de clave API y entrega del snippet de embed. La plataforma incluye rutas obligatorias /privacy y /data-deletion requeridas por Meta para el acceso a la API de Instagram. Estos endpoints cumplen con los requisitos de revisión de la app para acceso público al feed de Instagram.
  • Cloudflare Workers – Runtime en el edge con distribución global
  • Hono v4 – Framework ligero de TypeScript con middleware integrado
  • Cloudflare D1 – SQLite en el edge para datos de inquilinos
  • Cloudflare KV – Caché de alto rendimiento para respuestas de feed
  • Encriptación AES-GCM – Seguridad de tokens en reposo
  • Meta Instagram Graph API – Fuente de datos del feed
  • Wrangler v4 – Despliegue y gestión de secretos
Mantener los tokens seguros
Los tokens de acceso de Instagram son valiosos y nunca deben exponerse. Cada token se encripta con AES-GCM usando una ENCRYPTION_KEY por entorno antes del almacenamiento en D1. El descifrado ocurre solo en tiempo de solicitud, inmediatamente antes de llamar a la API de Instagram.
Evitar límites de tasa de Instagram
Las solicitudes frecuentes de feed activan el limitador de tasa de Instagram. Se implementó caché de KV de una hora con invalidación inteligente. Los headers X-Cache nos permiten verificar los aciertos de caché en desarrollo.
Gestionar la complejidad de OAuth
El flujo OAuth implica múltiples pasos: autorización, intercambio de tokens, conversión a token de larga durada y encriptación. Se construyó un portal de autoservicio que guía a los clientes a través de cada paso con mínima fricción.
  • Costos de embed de terceros eliminados en más de 5 sitios de clientes
  • Latencia global menor a 100ms mediante despliegue en el edge de Cloudflare
  • Cero gestión manual de tokens mediante refresco automatizado
  • Plataforma autosostenible que no requiere mantenimiento continuo más allá de renovaciones ocasionales de revisión de Meta
  • Marca consistente en sitios de clientes con un widget embebible personalizado
instafeed.apalaugonzalez.com