- InstaFeed.vue (Vue island) : consomme feeds.behold.so/{feedId}, skeleton loading, grid 2x3 thumbnails, fallback profil si placeholder ou erreur
- ColInsta.astro enrichi : 2 sections @aep.politique + @julesneny, hydratation client:visible (lazy)
- .env.example committe (PUBLIC_BEHOLD_AEP/JULESNENY vides) ; .env.local deja gitignore
- docs/BEHOLD-SETUP.md : procedure inscription + recup feed IDs + alternatives + note CSP PC8
Action Jules requise (async) : inscription Behold + connexion 2 comptes Insta + remplir .env.local.
1.6 KiB
1.6 KiB
Setup Behold pour embeds Insta
Page cerveau col D (ColInsta.astro) consomme 2 feeds Insta via Behold.so (gratuit, 2 feeds, sync 1h, sans login user).
Etapes
-
Creer compte sur https://behold.so (gratuit jusqu'a 2 feeds)
-
Connecter
@aep.politique(Login Instagram via Facebook Business) -
Connecter
@julesneny(idem) -
Recuperer les 2 feed IDs depuis le dashboard Behold
-
Copier
.env.examplevers.env.local(a la racine du repo) -
Remplir
.env.local:PUBLIC_BEHOLD_AEP=xxxxxxxxxxxx PUBLIC_BEHOLD_JULESNENY=yyyyyyyyyyyy -
Relancer
npm run devou rebuild + redeploy (PC8)
Comportement par defaut
Sans feed IDs valides (placeholder), le composant InstaFeed.vue affiche un fallback gracieux :
- Titre du compte (lien direct vers Instagram)
- Bio courte
- Bouton "Voir sur Instagram"
C'est OK pour un V1 visuel "complet". UX degradee mais pas casse.
Ressources techniques
- API Behold :
https://feeds.behold.so/{feedId}-> JSON array de posts - Sync : 1h (Behold rafraichit depuis Insta automatiquement)
- CDN : images servies depuis Behold (pas de hot-link Insta direct)
CSP (PC8 deploy)
Si une CSP est ajoutee au deploy Caddy, prevoir :
connect-src 'self' https://feeds.behold.so;
img-src 'self' data: https://feeds.behold.so https://*.cdninstagram.com;
Alternatives si Behold ne convient pas
- EmbedSocial (~$8/mois) : https://embedsocial.com
- Scrape n8n nocturne (V1.5) : Insta Graph API via compte Business + Page Facebook ; coherent avec PC6 journal-aggregate
- Posts manuels oEmbed (V2) : Jules selectionne 6-10 URLs, oEmbed post-by-post