feat: PC5 col D embeds Insta via Behold (avec fallback profil statique)

- 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.
This commit is contained in:
Jules Neny
2026-05-09 00:55:01 +02:00
parent aeaec6fc06
commit 71053ec9a6
4 changed files with 184 additions and 10 deletions

49
docs/BEHOLD-SETUP.md Normal file
View File

@@ -0,0 +1,49 @@
# Setup Behold pour embeds Insta
Page cerveau col D (`ColInsta.astro`) consomme 2 feeds Insta via [Behold.so](https://behold.so) (gratuit, 2 feeds, sync 1h, sans login user).
## Etapes
1. Creer compte sur https://behold.so (gratuit jusqu'a 2 feeds)
2. Connecter `@aep.politique` (Login Instagram via Facebook Business)
3. Connecter `@julesneny` (idem)
4. Recuperer les 2 feed IDs depuis le dashboard Behold
5. Copier `.env.example` vers `.env.local` (a la racine du repo)
6. Remplir `.env.local` :
```bash
PUBLIC_BEHOLD_AEP=xxxxxxxxxxxx
PUBLIC_BEHOLD_JULESNENY=yyyyyyyyyyyy
```
7. Relancer `npm run dev` ou 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