Dépannage et liste de vérification
Les problèmes courants lors de l’intégration de reactive.chat : bouton absent, aucune connexion, origine refusée, identité non confirmée, webhooks et données clients manquants. Causes, vérifications et liste avant la mise en ligne.
Outils
- Outils de développement → Réseau :
loader.js,core.<hash>.js, la connexion WebSocket (l’onglet « Messages » ou « Frames » afficheinit,init_ok,error) ou les requêtes du repli HTTP (h/auf,…/sse,…/tx). - Activer le diagnostic :
data-rc-debug="true"sur la balise du chargeur oulocalStorage.setItem('rc_debug','1')dans la console, puis recharger. - Console :
ReactiveChat('getSession'),ReactiveChat('getEndpoint'),ReactiveChat('isOpen'),ReactiveChat.version.
Aucun bouton du chat visible
- Clé de site absente ou invalide. Le chargeur s’arrête alors silencieusement. Vérifiez
data-rc-site-key(8–64 caractères parmiA–Z a–z 0–9 _ -) sur la balise exécutée : les gestionnaires de balises et les outils des frameworks suppriment parfois des attributs. type="module"sur la balise script : le chargeur ne trouve alors pas sa balise. Intégrez-le comme un script classique.data-rc-hide-launcher="true", ou « Uniquement via vos propres liens (pas d’icône de chat) » configuré dans votre compte.- Aucune couleur de marque dans le code d’intégration : sans couleur
data-rc-brandvalide, le bouton ne s’affiche qu’une fois la connexion établie. Recopiez le code depuis votre compte. - Projet en pause ou clé de site inconnue : le serveur répond avec
unknown_site_key(fermeture 4002) ; dans cet onglet, le widget ne réessaie pas pendant dix minutes. - Le noyau ne se charge pas : la console affiche
[reactive.chat] core.js …. Souvent,script-srcou un bloqueur de publicités bloque l’adresse ; voir Domaine personnalisé.
Le bouton est présent, mais aucun message n’arrive
loader.jsauto-hébergé sansdata-rc-ws-url: le widget cherche le serveur de chat sous votre domaine. Dans l’onglet Réseau, vous voyez des tentatives de connexion infructueuses àwss://ws.<your-domain>/rc_wss/. Solution :data-rc-ws-url="wss://ws.reactive.chat/rc_wss/".origin_denied, fermeture 1008 : le domaine de la page manque dans les Origines autorisées. Saisissez le domaine du site, pas le sous-domaine du chat.- Blocage par la CSP : la console affiche un message CSP concernant
wss://…ouhttps://…/rc_wss/h/auf. Ajoutez les deux formes àconnect-src. - Réseau d’entreprise sans WebSocket : après deux tentatives infructueuses, le widget passe au repli HTTP. Si celui-ci ne fonctionne pas non plus, vérifiez si des proxys interrompent les requêtes en moins de 30 secondes ou mettent les réponses en tampon (Transport).
- Blocage par la protection contre les abus (fermeture 1008
blocked) : fréquent derrière votre propre proxy sans clé de proxy valide, car tous les visiteurs ont alors la même adresse. - Message trop long : le widget n’envoie pas les textes dépassant la limite du forfait (1000 ou 4000 caractères).
Un utilisateur connecté est considéré comme anonyme
La trame error contient auth_failed avec detail.reason :
- no_hash –
userHashmanque dansidentify. - no_secret – aucun secret n’a été configuré dans le projet.
- bad_exp –
expest en millisecondes au lieu de secondes, ou n’est pas un entier. - expired – page ouverte depuis longtemps ou horloge du serveur incorrecte ; recalculez le hachage au chargement de la page.
- exp_too_far – plus de 24 heures dans le futur.
- bad_hash – le secret, l’ordre (
userId + "." + exp) ou le jeu de caractères ne correspondent pas ; la clé est le secret sous forme de chaîne de caractères, pas d’octets décodés. Si une adresse e-mail est incluse, elle doit être signée exactement telle que vous la transmettez.
Détails : Identifier les visiteurs.
Les données clients n’arrivent pas
- L’assistant demande à l’utilisateur de se connecter alors qu’il est connecté :
expest absent ou a expiré ; sansexp, aucune donnée client n’est disponible. - Tester la connexion dans votre compte indique la raison (
http_401,zeitueberschreitung,umleitung,adresse_privat…). La chaîne signée estX-RC-Zeit + "." + raw body; vérifiez-la à partir des octets reçus, pas d’un JSON réencodé. - Un champ manque dans la réponse de l’assistant : il n’est pas autorisé dans votre compte ou figure dans la liste des champs jamais repris.
Détails : Point de terminaison des données clients.
Les webhooks n’arrivent pas
- L’intégration est-elle activée et l’événement sélectionné (aucune sélection = tous) ? Après l’activation, attendez jusqu’à 15 secondes.
- Votre point de terminaison met plus de 10 secondes à répondre ou répond par une redirection.
- Votre point de terminaison a déjà répondu 410 : cela désactive l’intégration. Réactivez-la.
- La signature ne correspond pas : calculez-la sur le corps brut et
X-RC-Timestamp + "." + body, en tenant compte du préfixesha256=. - Il manque du contenu dans
data: les champs de chaque événement sont détaillés dans Webhooks ; un événement non sélectionné n’est pas livré du tout.
API serveur
- 401
auth_failed: clé révoquée, mal saisie ou créée par une personne qui n’est plus administratrice. - 403
insufficient_scope: la portée est insuffisante ;required_scopeindique celle qui est nécessaire. - 429 : la limite de 120 requêtes par minute est dépassée ; respectez
Retry-After. - 415/413 :
Content-Type: application/jsonest absent ou le corps dépasse 64 KiB.
Le texte de confidentialité ne s’affiche pas
- Le chargeur manque sur la page ou est bloqué par la plateforme de consentement : intégrez
datenschutz.jsdirectement. - Le site ne figure pas comme domaine dans le projet ou le projet est en pause.
data-rc-privacy-state="error"sur l’élément indique l’échec d’une requête.
Liste de vérification avant la mise en ligne
- Tous les domaines du site sont saisis dans les Origines autorisées.
- Le code de votre compte figure sans modification sur toutes les pages où le chat doit s’afficher, y compris la page de confidentialité.
- CSP :
script-srcpour l’emplacement de distribution,connect-srcavecwss://ethttps://,img-srcpour les images. - Consentement :
data-rc-consentou plateforme de consentement (TCF v2 / consented.eu) vérifié, avec des tests avec et sans consentement. - Politique de confidentialité complétée (
<div data-rc-privacy>ou bloc de texte). - Identité :
userHashavecexpcalculé sur le serveur, secret uniquement dans l’environnement serveur,init_ok.identity.verifiedvauttrue. - Zones contenant du texte confidentiel marquées avec
data-rc-private. - Avec votre propre domaine : les cinq étapes de vérification sont « OK », la clé du proxy figure uniquement dans sa configuration et
/rc_wss/h/est exclu du journal d’accès. - Webhooks : signature et horodatage vérifiés, doublons détectés via
X-RC-Delivery, réponse 2xx rapide. - Repli HTTP testé une fois avec
data-rc-transport="http". - Affichage mobile (en dessous de 480 pixels, le chat s’ouvre en plein écran) et navigation au clavier vérifiés.
An sabunta ta ƙarshe: