Widget web
Ajoutez le chat AskAIs à votre site web avec une seule balise script, identifiez les visiteurs connectés et ajustez son apparence.
Les noms techniques comme
window.SingChatfont partie du widget et de l’API. Conservez-les tels quels dans votre code.
Le widget web est un seul script, widget.js, servi depuis askais.com. Il ajoute un bouton de chat à vos pages et affiche la fenêtre de chat dans un Shadow DOM : les styles de votre site et ceux du widget restent séparés.
L’ajouter à votre site
Collez ce code avant </body> sur chaque page où le chat doit apparaître. Votre App ID se trouve dans Paramètres → Boîtes de réception.
<script src="https://askais.com/widget.js"
data-app-id="YOUR_APP_ID"
data-base-url="https://askais.com"
async></script>data-base-url est obligatoire sur votre propre site : sans lui, le widget cherche son serveur sur votre domaine au lieu de askais.com.
⚠️ Chargez widget.js depuis askais.com
Ne téléchargez pas widget.js et ne l’intégrez pas à votre propre code. Chargé depuis askais.com, il exécute toujours la version actuelle ; une copie reste figée et passe à côté de chaque correctif et de chaque nouvelle fonctionnalité.
Attributs du script
Tout se règle avec des attributs data- sur la balise script :
data-app-id— Obligatoire. L’App ID de votre boîte de réception.data-base-url— Obligatoire sur votre site. Toujourshttps://askais.com.data-locale— Facultatif. Impose la langue du widget, par exemplejaouzh-Hant. Sans cet attribut, le widget suit la langue de l’appareil du visiteur, puis lelangde votre page.data-external-id— Votre ID pour un utilisateur connecté.data-email— L’e-mail de l’utilisateur, affiché à votre équipe.data-name— Le nom de l’utilisateur, affiché à votre équipe.data-avatar-url— Lien vers la photo de profil de l’utilisateur.data-hmac— Signature d’identité, voir plus bas.data-attrs— Informations supplémentaires en JSON, par exemple{"plan":"Pro"}, affichées à votre équipe dans le profil du visiteur. Un JSON invalide est ignoré.
data-embed, data-platform, data-app-version et data-device-model sont définis par la page de chat intégré à l’app. Voir Chat intégré à l’app (WebView).
Visiteurs connectés
Pour un utilisateur connecté, ajoutez ses informations à la balise script. Votre équipe voit à qui elle parle, et le chat suit l’utilisateur sur ses autres appareils :
<script src="https://askais.com/widget.js"
data-app-id="YOUR_APP_ID"
data-base-url="https://askais.com"
data-external-id="user_123"
data-email="ada@example.com"
data-name="Ada Lovelace"
data-attrs='{"plan":"Pro"}'
data-hmac="SIGNATURE_FROM_YOUR_SERVER"
async></script>Sans data-external-id, le widget attribue à chaque navigateur son propre ID anonyme, conservé dans le stockage local du navigateur : l’historique du chat survit donc aux rechargements de page dans ce navigateur. Si la boîte de réception a un formulaire de pré-discussion, les visiteurs anonymes le remplissent avant le début du chat.
Identité vérifiée (HMAC)
hmacest le HMAC-SHA256 de l’externalId, avec la clé secrète de la boîte de réception comme clé, écrit en hexadécimal minuscule.- Calculez-le sur votre serveur. La clé secrète ne va jamais dans une page ou une app.
- La clé secrète s’affiche une fois à la création de la boîte de réception, puis de nouveau quand vous la renouvelez dans Paramètres → Boîtes de réception. La renouveler rend invalides toutes les anciennes signatures.
- Envoyez toujours
data-external-idavecdata-hmac. La signature est vérifiée par rapport à l’ID externe : une signature calculée sur l’e-mail seul est rejetée. - Avec une mauvaise signature, le widget ne peut pas se connecter. Sans
data-hmac, les informations sont acceptées telles que la page les fournit : toute personne capable de modifier la page pourrait se faire passer pour quelqu’un d’autre.
Exemple pour Node.js :
import { createHmac } from "node:crypto";
// Runs on your server. INBOX_SECRET_KEY never leaves it.
const hmac = createHmac("sha256", INBOX_SECRET_KEY)
.update(user.id) // the exact value you pass as data-external-id
.digest("hex");Démarrer le widget depuis JavaScript
Pour démarrer le widget vous-même, par exemple une fois que votre page sait qui est l’utilisateur, chargez le script sans data-app-id et appelez window.SingChat.start() une fois qu’il est chargé :
<script src="https://askais.com/widget.js"></script>
<script>
window.SingChat.start({
appId: "YOUR_APP_ID",
baseUrl: "https://askais.com",
// optional, for a signed-in user:
externalId: "user_123",
email: "ada@example.com",
name: "Ada Lovelace",
hmac: "SIGNATURE_FROM_YOUR_SERVER",
});
</script>start() est la seule méthode fournie par le script. Il n’existe aucune méthode pour ouvrir ou fermer le widget, ni pour écouter ses événements ; les visiteurs l’ouvrent depuis le bouton de chat.
Apparence et comportement
- Paramètres → Boîtes de réception, puis dépliez une boîte de réception : couleur principale et couleur du texte, position (en bas à droite ou en bas à gauche), taille de la bulle, fond clair ou sombre, titre et sous-titre de la fenêtre, avec un aperçu en direct.
- Formulaire de pré-discussion (au même endroit) : demandez aux visiteurs anonymes leur e-mail, leur nom, leur téléphone ou leur entreprise avant le début du chat.
- Origines autorisées (au même endroit) : les sites web autorisés à charger le widget de cette boîte de réception. Une liste vide autorise n’importe quel site.
- Marque du widget (au même endroit) : la ligne « Powered by » en bas du chat. Votre forfait détermine si vous pouvez la masquer ou y afficher votre propre nom.
- Le message d’accueil de l’IA se règle dans Agent IA, les bulles de FAQ cliquables dans Paramètres → FAQ, et les articles dans Help Center.
Sécurité
- L’App ID est public : il peut figurer sans risque dans votre HTML.
- La clé secrète de la boîte de réception doit rester sur votre serveur.
- Utilisez l’identité vérifiée (HMAC) dès que la page sait qui est l’utilisateur.
- Limitez les origines autorisées à vos propres domaines pour que le widget ne puisse pas être chargé sur d’autres sites.