|
Download docs/embedded_signup_implementation.md from safetrack/edtech: direct link, hf CLI and curl.
- Browser
- Download file 2.14 kB
-
https://huggingface.co/spaces/safetrack/edtech/resolve/main/docs/embedded_signup_implementation.md
- Command line
-
hf download hf://spaces/safetrack/edtech/docs/embedded_signup_implementation.md
-
curl -L -o embedded_signup_implementation.md https://huggingface.co/spaces/safetrack/edtech/resolve/main/docs/embedded_signup_implementation.md
2.14 kB
| # Implémentation Embedded Signup WhatsApp | |
| Ce document décrit le flux technique pour permettre aux organisations B2B de connecter leur propre numéro WhatsApp à la plateforme. | |
| ## 1. Flux Frontend (SDK Meta) | |
| Le Frontend doit charger le SDK Facebook et déclencher la popup de configuration. | |
| ### Configuration Requise | |
| - **SDK URL** : `https://connect.facebook.net/en_US/sdk.js` | |
| - **App ID** : Configuré dans le Dashboard Meta App. | |
| - **Config ID** : Identifiant de la configuration d'Embedded Signup créée sur Meta Business Suite. | |
| ### Exemple d'appel JS | |
| ```javascript | |
| FB.login((response) => { | |
| if (response.authResponse) { | |
| const code = response.authResponse.code; | |
| // Envoyer le code ou le token au Backend | |
| } | |
| }, { | |
| config_id: '<YOUR_CONFIG_ID>', | |
| response_type: 'code', | |
| override_default_response_type: true | |
| }); | |
| ``` | |
| ## 2. Point de Terminaison Backend (API) | |
| L'API réceptionne les données après la validation Meta côté client. | |
| ### Route : `POST /v1/organizations/:id/whatsapp-setup` | |
| **Authentification** : Requiert un token JWT valide d'un administrateur d'organisation ou une clé API d'administration. | |
| **Corps de la requête (JSON)** : | |
| ```json | |
| { | |
| "wabaId": "1234567890", | |
| "accessToken": "EAAG...", | |
| "phoneNumberId": "9876543210", | |
| "phoneNumber": "+33612345678" | |
| } | |
| ``` | |
| ### Traitement Backend : | |
| 1. **Validation** : Vérification de la présence des champs obligatoires via Zod. | |
| 2. **Chiffrement** : Le `accessToken` est chiffré à la volée avec l' `ENCRYPTION_SECRET` (AES-256-GCM). | |
| 3. **Persistance** : Mise à jour de la table `Organization` (champs `systemUserToken` et `wabaId`). | |
| 4. **Synchronisation** : `upsert` dans la table `WhatsAppPhoneNumber` pour lier l'ID technique au numéro lisible. | |
| 5. **Invalidation Cache** : Suppression des clés Redis `org:config:*` et `org:phone:*` pour forcer le Worker à charger la nouvelle configuration. | |
| ## 3. Sécurité | |
| - **Données en transit** : Toujours sous HTTPS + JWT. | |
| - **Données au repos** : Tous les tokens d'accès système sont chiffrés. Seul le code applicatif possédant l' `ENCRYPTION_SECRET` (non présent en DB) peut les lire. | |