# DataFirefly Social Connect — Guide complet

> Guide complet d'installation, de configuration et d'utilisation de DataFirefly Social Connect : connexion sociale via Google, Apple, Facebook, Microsoft, LinkedIn et X pour WooCommerce, avec statistiques, attribution des commandes, test A/B et anti-fraude.

- Page: <https://www.datafirefly.com/documentation/datafirefly-social-connect/>
- Langue: fr
- Mis à jour le: 2026-06-28
- Autres langues: [en](https://www.datafirefly.com/en/documentation/datafirefly-social-connect/index.md), [es](https://www.datafirefly.com/es/documentation/datafirefly-social-connect/index.md), [de](https://www.datafirefly.com/de/documentation/datafirefly-social-connect/index.md), [it](https://www.datafirefly.com/it/documentation/datafirefly-social-connect/index.md), [pl](https://www.datafirefly.com/pl/documentation/datafirefly-social-connect/index.md), [nl](https://www.datafirefly.com/nl/documentation/datafirefly-social-connect/index.md), [pt](https://www.datafirefly.com/pt/documentation/datafirefly-social-connect/index.md)
- Index: <https://www.datafirefly.com/documentation/llms.txt>

## Présentation

DataFirefly Social Connect ajoute à votre boutique WooCommerce une connexion sociale en un clic via six fournisseurs (Google, Apple, Facebook, Microsoft, LinkedIn et X), un tableau de bord statistique complet, l'attribution des commandes au fournisseur d'origine, un test A/B des boutons, un système anti-fraude et la conformité RGPD native.

Le plugin n'utilise aucune librairie CDN externe : les graphiques du tableau de bord sont rendus en canvas HTML5 natif, les flux OAuth 2.0 et OpenID Connect sont implémentés directement dans le module (vérification complète des signatures JWKS pour Google One-Tap, signature ES256 à la volée pour Apple, durcissement `appsecret_proof` pour Facebook, PKCE S256 pour X).

**Pré-requis** : WordPress 6.2 ou supérieur, WooCommerce 7.0 ou supérieur, PHP 8.0 ou supérieur. La compatibilité avec HPOS et les blocs de commande WooCommerce est déclarée par le plugin à l'activation.

## Installation

1. Téléchargez le fichier ZIP du plugin depuis votre espace client DataFirefly.
2. Dans WordPress, allez dans _Extensions → Ajouter → Téléverser une extension_.
3. Sélectionnez le ZIP puis cliquez sur _Installer maintenant_.
4. Cliquez sur _Activer_. WooCommerce doit être actif au moment de l'activation, sinon le plugin refuse de s'installer.
5. Un nouveau menu _Social Connect_ apparaît dans la barre latérale d'administration, avec deux sous-pages : _Statistiques_ et _Réglages_.

À l'activation, deux tables SQL sont créées : `wp_dfsc_connections` (comptes liés) et `wp_dfsc_events` (journal des événements pour les statistiques). Les options par défaut sont écrites dans `dfsc_settings`.

## Configuration des fournisseurs

Chaque fournisseur dispose de sa propre carte dans l'onglet _Fournisseurs_ des réglages. Pour chacun, vous trouvez en haut de la carte l'**URI de redirection** à copier-coller dans la console du fournisseur. C'est ce paramètre qui autorise votre site à recevoir le retour de l'authentification.

### Google (avec One-Tap)

1. Allez sur [Google Cloud Console](https://console.cloud.google.com/) et créez (ou sélectionnez) un projet.
2. Dans _APIs & Services → OAuth consent screen_, configurez l'écran de consentement (type Externe pour une boutique publique, ajoutez votre domaine dans les domaines autorisés).
3. Dans _Credentials → Create credentials → OAuth client ID_, choisissez _Web application_.
4. Dans _Authorized redirect URIs_, collez l'URI affichée dans la carte Google de Social Connect (forme : `https://votre-domaine.com/?dfsc_action=callback&dfsc_provider=google`).
5. Pour activer Google One-Tap, ajoutez aussi votre domaine racine dans _Authorized JavaScript origins_.
6. Copiez le _Client ID_ et le _Client secret_ dans les champs correspondants de la carte Google, activez l'interrupteur du fournisseur, et cochez _Afficher l'invite One-Tap aux visiteurs non connectés_ si vous le souhaitez.

One-Tap fonctionne avec une vérification complète de la signature JWKS et un contrôle des claims `aud`, `iss` et `exp`. La validation est cryptographique, pas seulement déclarative.

### Apple (Sign in with Apple)

1. Sur [Apple Developer](https://developer.apple.com/) (compte payant requis), allez dans _Certificates, Identifiers & Profiles → Identifiers_.
2. Créez un _App ID_ avec la capability _Sign In with Apple_ activée.
3. Créez ensuite un _Services ID_ (c'est cet identifiant que vous utiliserez comme « Client ID » côté Social Connect). Configurez son Sign In with Apple : ajoutez votre domaine dans _Domains_, et l'URI de redirection affichée dans la carte Apple dans _Return URLs_.
4. Créez une clé privée (_Keys → +_), avec _Sign In with Apple_ coché, associée à votre App ID. Téléchargez le fichier `.p8` (vous ne pourrez le télécharger qu'une seule fois).
5. Dans la carte Apple, renseignez le _Services ID_, votre _Team ID_ (visible en haut à droite du portail), le _Key ID_ (affiché à côté de la clé créée), et collez le contenu complet du fichier `.p8` dans la zone _Clé privée_ (lignes `-----BEGIN PRIVATE KEY-----` incluses).

Apple ne renvoie le nom de l'utilisateur qu'au tout premier consentement, et ne fournit jamais de photo de profil. Si l'utilisateur active « Hide My Email », un e-mail relais Apple est fourni — le plugin l'utilise normalement. S'il refuse de partager son adresse, un e-mail technique est généré automatiquement par le plugin.

### Facebook

1. Sur [Meta for Developers](https://developers.facebook.com/), créez une application de type _Consumer_.
2. Dans l'application, ajoutez le produit _Facebook Login → Web_.
3. Dans les paramètres de Facebook Login, ajoutez l'URI de redirection affichée dans la carte Facebook dans _Valid OAuth Redirect URIs_.
4. Récupérez l'_App ID_ et l'_App Secret_ dans _Settings → Basic_ et collez-les dans la carte Facebook.

Le plugin durcit chaque appel à la Graph API avec `appsecret_proof` (HMAC-SHA256 du jeton signé avec votre App Secret), conformément aux bonnes pratiques de Meta.

### Microsoft

1. Sur [Microsoft Entra (anciennement Azure AD)](https://entra.microsoft.com/), allez dans _App registrations → New registration_.
2. Donnez un nom à votre application. Pour _Supported account types_, choisissez _Accounts in any organizational directory and personal Microsoft accounts_ si vous voulez accepter les deux (utilise le tenant `common`).
3. Dans _Redirect URI_, choisissez _Web_ et collez l'URI affichée dans la carte Microsoft.
4. Une fois créée, copiez l'_Application (client) ID_ dans le champ correspondant.
5. Dans _Certificates & secrets_, créez un _New client secret_, copiez immédiatement la valeur (elle ne sera plus visible ensuite) dans le champ _Client Secret_.
6. Laissez le champ _Tenant_ sur `common` pour accepter comptes pro et personnels, ou renseignez votre ID de tenant pour restreindre à une organisation.

### LinkedIn

1. Sur [LinkedIn Developers](https://www.linkedin.com/developers/), créez une application liée à votre page entreprise.
2. Dans l'onglet _Products_, demandez l'activation de _Sign In with LinkedIn using OpenID Connect_. L'approbation est automatique.
3. Dans l'onglet _Auth_, ajoutez l'URI de redirection affichée dans la carte LinkedIn dans _Authorized redirect URLs_.
4. Récupérez le _Client ID_ et le _Client Secret_ de l'onglet _Auth_ et collez-les dans Social Connect.

### X (Twitter)

1. Sur le [portail développeurs X](https://developer.x.com/), créez un projet puis une application.
2. Dans _User authentication settings_, activez OAuth 2.0, choisissez le type _Confidential client_ (recommandé), et collez l'URI de redirection affichée dans la carte X dans _Callback URI / Redirect URL_.
3. Renseignez votre _Website URL_ (page d'accueil de votre boutique).
4. Récupérez le _Client ID_ et le _Client Secret_ et collez-les dans Social Connect.

L'API X v2 ne renvoie pas l'adresse e-mail. Le plugin génère automatiquement une adresse technique pour créer le compte WordPress correspondant. Si vous tenez à un e-mail réel, l'utilisateur peut toujours le mettre à jour dans son espace client.

## Placements et apparence

Dans l'onglet _Apparence_, vous choisissez où afficher les boutons :

- **Formulaire de connexion** WooCommerce (page Mon compte non connecté).
- **Formulaire d'inscription** WooCommerce.
- **Page de commande (checkout)**, au-dessus du formulaire.
- **Tableau de bord Mon compte**, avec la liste des comptes liés et les boutons d'association manuelle.

Vous pouvez aussi insérer les boutons n'importe où via le shortcode :

```
[datafirefly_social_connect]
[datafirefly_social_connect context="login" heading="yes" providers="google,apple"]
[datafirefly_social_connect context="custom" redirect="https://votre-site/destination/"]
```

L'apparence est paramétrable sur quatre axes :

- **Style** : plein (couleurs de marque), contour (fond blanc, bordure colorée), minimal (fond gris clair).
- **Forme** : arrondi, pilule, carré.
- **Disposition** : empilés ou en ligne.
- **Libellé** : « Continuer avec… », « Se connecter avec… » ou icône seule.

## Tableau de bord statistique

Le tableau de bord (menu _Social Connect → Statistiques_) regroupe toute l'activité de connexion sociale de votre boutique.

### KPI et graphiques

Sélecteur de période en haut à droite : 7, 30, 90 ou 365 jours. Les six KPI affichés couvrent :

- **Connexions** — total des authentifications sur la période.
- **Inscriptions** — nouveaux comptes créés via connexion sociale.
- **Comptes liés (total)** — nombre cumulé d'identités sociales associées à des utilisateurs.
- **Commandes attribuées** et **CA attribué** — voir la section suivante.
- **Taux de conversion** — ratio commandes / connexions.

Quatre graphiques complètent les KPI : une courbe d'évolution dans le temps par fournisseur, un donut de répartition par fournisseur, un donut de répartition par type d'appareil (ordinateur, mobile, tablette) et une carte « Top pays » alimentée par la géolocalisation.

### Attribution des commandes

Chaque commande WooCommerce passée par un utilisateur arrivé via connexion sociale est attribuée à son fournisseur d'origine. L'attribution s'appuie sur la méta utilisateur `_dfsc_registered_via` et, en secours, sur la première connexion sociale active de l'utilisateur.

Les hooks `woocommerce_checkout_order_processed` et `woocommerce_store_api_checkout_order_processed` sont écoutés, ce qui couvre à la fois le checkout classique et le checkout en blocs.

## Test A/B des boutons

Dans l'onglet _Apparence_, activez le bloc _Test A/B des boutons_ et configurez la variante B (style, forme, disposition, libellé). À partir de ce moment, chaque visiteur reçoit aléatoirement la variante A (vos réglages de base) ou la variante B (cookie `dfsc_ab`, 50/50, conservé 30 jours).

Une impression est comptée une fois par session de visiteur (cookie `dfsc_ab_imp`), pour ne pas gonfler le volume. Les conversions sont mesurées sur les événements de connexion, d'inscription, de liaison et de commande, et reportées sur la carte _Test A/B_ du tableau de bord avec impressions, conversions, commandes attribuées, taux par variante et désignation automatique de la variante gagnante.

Pour obtenir un résultat statistiquement significatif, comptez au minimum 500 impressions par variante. Sous 200, les écarts mesurés sont essentiellement du bruit.

## Anti-fraude — vélocité de connexion

Dans l'onglet _Confidentialité_, vous pouvez activer la limitation de vélocité par adresse IP. Trois seuils sont configurables :

- **Tentatives maximum** — par défaut 8.
- **Fenêtre (minutes)** — par défaut 5.
- **Durée de blocage (minutes)** — par défaut 15.

Une fois la limite franchie, l'IP est bloquée pour la durée configurée. Un événement de type `blocked` est journalisé et apparaît dans l'activité récente. La protection s'applique à la fois aux redirections OAuth classiques et au flux Google One-Tap.

Indépendamment, le plugin maintient une liste de domaines d'e-mails jetables (Mailinator, Yopmail, 10MinuteMail, etc.) qui peuvent être bloqués à l'inscription. La liste est extensible via le filtre `dfsc_disposable_domains`.

## Géolocalisation

Activez la géolocalisation dans l'onglet _Confidentialité_. Le plugin utilise la base MaxMind **déjà embarquée par WooCommerce** — aucun appel à un service externe n'est effectué. Si vous n'avez pas encore activé la géolocalisation côté WooCommerce, allez dans _WooCommerce → Réglages → Général_ et activez l'option de géolocalisation par défaut (WooCommerce téléchargera automatiquement la base de données).

Une fois activée, le pays de chaque connexion est résolu et alimente la carte _Top pays_ du tableau de bord et la colonne « Pays » de l'export CSV.

## Export CSV

Le bouton _Exporter en CSV_ en haut du tableau de bord exporte tous les événements de la période sélectionnée. Le fichier inclut une colonne pour chaque champ pertinent (date UTC, événement, fournisseur, contexte, pays, appareil, variante A/B, utilisateur, commande, montant, message). Le BOM UTF-8 est ajouté en début de fichier pour qu'Excel et LibreOffice Calc affichent correctement les accents.

## Liaison de comptes

Trois mécanismes coexistent pour relier une identité sociale à un compte WordPress :

1. **Identité déjà connue** — l'utilisateur a déjà utilisé ce fournisseur, sa connexion est immédiate.
2. **Liaison automatique par e-mail** — un utilisateur WordPress existe déjà avec la même adresse e-mail que celle renvoyée par le fournisseur. Si l'e-mail est vérifié par le fournisseur (et que l'option _E-mail vérifié requis_ est activée), la liaison est faite automatiquement.
3. **Liaison manuelle** — depuis le tableau de bord _Mon compte_, un client connecté peut associer ou dissocier chaque fournisseur via le panneau _Comptes connectés_.

## RGPD et confidentialité

Trois modes de stockage des IP sont disponibles dans l'onglet _Confidentialité_ :

- **Hachée** (par défaut) — HMAC-SHA256 avec `wp_salt`, non réversible.
- **Complète** — IP en clair (à n'utiliser que si votre politique de confidentialité le mentionne explicitement).
- **Aucune** — l'IP n'est pas du tout enregistrée.

Le plugin déclare un _exporter_ et un _eraser_ auprès du système RGPD natif de WordPress (_Outils → Exporter / Effacer des données personnelles_). À la suppression d'un utilisateur, ses comptes liés et ses événements sont également supprimés (ou anonymisés en cas d'effacement).

## Shortcode et intégration avancée

Le shortcode `[datafirefly_social_connect]` accepte les attributs suivants :

- `context` — `login`, `register`, `checkout` ou `custom`.
- `heading` — `yes` ou `no`, pour afficher le titre « Connexion rapide » au-dessus des boutons.
- `providers` — liste séparée par des virgules pour limiter l'affichage (ex. `google,apple`).
- `redirect` — URL absolue de redirection après connexion (prime sur le réglage global).

Vous pouvez aussi appeler le rendu directement en PHP :

```
echo do_shortcode('[datafirefly_social_connect context="custom" providers="google,microsoft"]');
```

## Hooks et filtres pour développeurs

- `dfsc_disposable_domains` (filtre) — étend ou remplace la liste des domaines d'e-mails jetables.
- `dfsc_user_registered` (action) — déclenchée juste après la création d'un compte via connexion sociale, avec l'ID utilisateur et le profil normalisé.
- `dfsc_after_login` (action) — déclenchée après chaque connexion réussie.
- `dfsc_welcome_subject` et `dfsc_welcome_body` (filtres) — personnalisent le sujet et le corps de l'e-mail de bienvenue.
- `dfsc_placeholder_email_domain` (filtre) — change le domaine utilisé pour les e-mails techniques (Apple Hide My Email refusé, X).

Une API REST en lecture seule expose les statistiques agrégées sur `/wp-json/datafirefly-social-connect/v1/stats?days=30` (capacité `manage_woocommerce` requise). Activez-la dans l'onglet _Confidentialité_.

## Compatibilité

- **WooCommerce HPOS** — la compatibilité `custom_order_tables` est déclarée à l'activation, vos commandes en stockage haute performance sont supportées sans réserve.
- **Blocs de commande** — le hook `woocommerce_store_api_checkout_order_processed` est écouté en parallèle du hook classique, l'attribution des commandes fonctionne sur les deux types de checkout.
- **Polylang et WPML** — les chaînes d'interface sont traduisibles via le fichier `.pot` fourni (FR, EN, ES, DE, IT). Le contenu (e-mail de bienvenue, etc.) est compatible avec les deux plugins multilingues.
- **Multisite** — chaque site du réseau a ses propres tables et options. La désinstallation nettoie chaque site.

## Désinstallation

À la suppression du plugin depuis _Extensions_, le fichier `uninstall.php` est exécuté automatiquement. Il supprime :

- Les tables `wp_dfsc_connections` et `wp_dfsc_events`.
- Les options `dfsc_settings` et `dfsc_db_version`.
- Les transients liés (cache JWKS Google, cache du secret client Apple, jetons d'état).
- Les métadonnées utilisateur (`_dfsc_provider`, `_dfsc_registered_via`, `_dfsc_avatar_id`, etc.).

Vos utilisateurs WordPress et vos commandes WooCommerce ne sont jamais touchés. En multisite, la désinstallation parcourt tous les sites du réseau.

## FAQ et dépannage

### Le bouton Google m'affiche « redirect_uri_mismatch »

L'URI de redirection collée dans Google Cloud Console ne correspond pas exactement à celle affichée dans la carte Google de Social Connect. Vérifiez que vous avez bien copié l'URI complète (avec `https://`, le slash final, et les paramètres `?dfsc_action=callback&dfsc_provider=google`).

### Apple me retourne « invalid_client »

Trois causes possibles : le _Services ID_ renseigné n'est pas un Services ID mais un App ID, le _Team ID_ est erroné, ou le contenu de la clé privée `.p8` est incomplet (lignes `-----BEGIN PRIVATE KEY-----` manquantes). Re-vérifiez les trois et videz le cache du secret client Apple en sauvegardant à nouveau les réglages.

### Facebook me retourne une erreur d'`appsecret_proof`

L'App Secret saisi est incorrect ou a été régénéré côté Meta sans être mis à jour ici. Allez dans Meta for Developers, copiez à nouveau le secret, et collez-le dans la carte Facebook.

### X / Twitter me retourne « invalid_request » au moment du retour

Le _Callback URI_ n'a pas été correctement renseigné dans le portail développeurs X, ou le type d'application n'est pas _Confidential client_ alors que le Client Secret est obligatoire. Re-vérifiez le portail.

### Le tableau de bord est vide alors que j'ai eu des connexions

Vérifiez que la période sélectionnée couvre bien les connexions (par défaut 30 jours). Si vous venez d'activer le plugin, attendez d'avoir au moins quelques événements pour voir les graphiques s'animer.

### Le test A/B affiche des taux à 0 %

Il faut un minimum d'impressions et de conversions pour que les taux deviennent significatifs. Comptez quelques centaines d'impressions par variante avant d'interpréter les résultats.

### La géolocalisation ne renvoie aucun pays

Vérifiez que WooCommerce a bien téléchargé la base MaxMind. Allez dans _WooCommerce → Réglages → Général_, activez la géolocalisation par défaut, et patientez quelques minutes. La base est mise à jour automatiquement par WooCommerce ensuite.

### Comment forcer la dissociation d'un compte côté admin ?

Allez dans la table `wp_dfsc_connections` et supprimez la ligne correspondante. À sa prochaine connexion via ce fournisseur, l'utilisateur sera traité comme une identité nouvelle (rattachée à son compte WordPress par e-mail si la liaison automatique est active).
