# Embedding & Intégrations Intégrer Ackify dans vos outils (Notion, Outline, Google Docs, etc.). ## Formats d'URL : Quand Utiliser Quoi Ackify propose deux formats d'URL selon votre cas d'usage : ### `/?doc=` - Expérience Page Complète **À utiliser pour** : - Liens directs dans emails, messages chat - Pages de signature autonomes - Quand vous voulez navigation et contexte complets **Comportement** : - Page complète avec en-tête, navigation et pied de page - Optimisé pour accès utilisateur direct - Contexte complet de branding et organisation **Exemple** : ``` https://sign.company.com/?doc=policy_2025 ``` ### `/embed?doc=` - Vue Optimisée Embed **À utiliser pour** : - Embeds iFrame dans Notion, Outline, Confluence - Intégrations widgets dans plateformes tierces - Quand vous voulez une interface épurée et minimaliste **Comportement** : - Interface minimale sans navigation - Optimisé pour petits conteneurs iframe - Focus uniquement sur statut signature et bouton d'action - Pas de redirections automatiques **Exemple** : ``` https://sign.company.com/embed?doc=policy_2025 ``` > **Important** : Pour l'embedding dans Notion/Outline, utilisez toujours `/embed?doc=...` pour éviter les redirections non désirées et obtenir l'expérience embed optimale. ## Méthodes d'Intégration ### 1. Lien Direct Le plus simple : ``` https://sign.company.com/?doc=policy_2025 ``` **Usage** : - Email - Chat (Slack, Teams) - Wiki - Documentation **Comportement** : - L'utilisateur clique → Arrive sur la page de signature - Se connecte via OAuth2 - Signe le document ### 2. iFrame Embed Pour intégrer dans une page web : ```html ``` **Rendu** : ``` ┌─────────────────────────────────────┐ │ 📄 Security Policy 2025 │ │ 42 confirmations │ │ [Sign this document] │ └─────────────────────────────────────┘ ``` ### 3. oEmbed (Auto-discovery) Pour les plateformes supportant oEmbed (Notion, Outline, Confluence, etc.). #### Comment ça marche 1. Coller l'URL dans votre éditeur : ``` https://sign.company.com/?doc=policy_2025 ``` 2. L'éditeur détecte automatiquement via la balise meta : ```html ``` 3. L'éditeur appelle `/oembed` et reçoit : ```json { "type": "rich", "version": "1.0", "title": "Security Policy 2025 - 42 confirmations", "provider_name": "Ackify", "html": "", "width": null, "height": 200 } ``` ### Paramètres | Paramètre | Description | Exemple | |-----------|-------------|---------| | `url` | URL du document (obligatoire) | `?url=https://...` | | `maxwidth` | Largeur max (optionnel) | `?maxwidth=800` | | `maxheight` | Hauteur max (optionnel) | `?maxheight=300` | ### Discovery Toutes les pages incluent la balise de discovery : ```html ``` ## Personnalisation ### Thème Dark Mode Le widget détecte automatiquement le dark mode du navigateur : ```css @media (prefers-color-scheme: dark) { /* Thème sombre automatique */ } ``` ### Taille Personnalisée ```html ``` ### Langue Le widget détecte automatiquement la langue du navigateur : - `fr` - Français - `en` - English - `es` - Español - `de` - Deutsch - `it` - Italiano ## Sécurité ### iFrame Sandboxing Par défaut, les iframes Ackify autorisent : - `allow-same-origin` - Cookies OAuth2 - `allow-scripts` - Fonctionnalités Vue.js - `allow-forms` - Soumission de signatures - `allow-popups` - OAuth redirect ### CORS Ackify configure automatiquement CORS pour : - Toutes les origines (lecture publique) - Credentials via `Access-Control-Allow-Credentials` ### CSP Content Security Policy headers configurés pour permettre l'embedding : ``` X-Frame-Options: SAMEORIGIN Content-Security-Policy: frame-ancestors 'self' https://notion.so https://outline.com ``` ## Troubleshooting ### L'iframe ne s'affiche pas Vérifier : - HTTPS activé (required pour OAuth) - CSP headers permettent l'embedding - Pas de bloqueur de contenu (uBlock, Privacy Badger) ### oEmbed non détecté Vérifier : - La balise `` est présente - L'URL est exacte (avec `?doc=...`) - La plateforme supporte oEmbed discovery ### Preview Slack vide Vérifier : - Open Graph meta tags présents - URL publiquement accessible - Pas de redirect infini ## Exemples Complets Voir : - [docs/integrations/google-doc/](../integrations/google-doc/) - Intégration Google Workspace - Plus d'exemples à venir...