Personnaliser le widget de clavardage
Vous pouvez personnaliser divers aspects du widget de clavardage, tels que la disposition et les icônes, les couleurs et le texte.
Conseil :
Cet article présente les différentes propriétés de personnalisation.Configuration de réseau
scripts/settings.js
.
Nom de la propriété | Description | Obligatoire? | Valeur par défaut |
---|---|---|---|
URI |
URL du serveur de clavardage Oracle | Oui | S.O. |
channelId |
ID canal du canal Oracle Web | Oui | S.O. |
userId |
Identificateur unique de l'utilisateur. Si vous n'indiquez pas cette valeur, Oracle Digital Asssistant la génère. | Non | Valeur générée aléatoirement |
clientAuthEnabled |
Détermine si la trousse SDK se connecte à un canal pour lequel l'authentification de client a été activée. Comme décrit dans Configurer l'authentification de client, réglez cette propriété à true pour vous connecter à un canal prenant en charge l'authentification et utiliser le jeton JWT.
|
Oui | false |
Indicateurs de fonction
- Connexions sécurisées
- Boutons d'action de forme ovale
- Expression audio des réponses de compétence
- Partage de fichiers joints
- Désactivation des clics sur les messages précédents (hors sélection)
- Remplir automatiquement l'entrée d'utilisateur
<script>
const chatSettings = {
showConnectionStatus: true,
conversationBeginPosition: 'bottom',
openChatOnLoad: true,
position: {bottom: '2px', right: '2px'},
displayActionAsPills: true,
initUserHiddenMessage: 'Hello',
embedded: true,
targetElement: 'chat-container',
embedTopScrollId: 'top-text',
customHeaderElementId: 'custom-header',
botButtonIcon: 'images/bot-button.png',
logoIcon: 'images/bot-white.png',
botIcon: 'images/bot-green.png',
personIcon: 'images/user-icon.png',
URI: YOUR_URI,
channelId: YOUR_CHANNELID,
};
...
</script>
Conseil :
À partir de la version 22.08, le schéma des paramètres de configuration du widget de clavardage est disponible dans un format de schéma JSON standard au moyen d'un réseau de diffusion de contenu (https://static.oracle.com/cdn/oda/22.8.0/settings-schema.json
), qui peut être utilisé pour créer des écrans de configuration dynamiques.
Nom de la propriété | Description | Obligatoire? | Valeur par défaut |
---|---|---|---|
alwaysShowSendButton |
Affiche le bouton d'envoi dans le pied de page du clavardage même s'il n'y a pas de texte d'entrée utilisateur. | Non | false |
defaultGreetingTimeout |
Temporisation par défaut, en secondes, après laquelle un message d'accueil par défaut s'affiche. | Non | 5 |
defaultWaitMessageInterval |
Intervalle par défaut, en secondes, pendant lequel le message d'attente par défaut s'affiche. | Non | 5 |
disablePastActions |
Désactive les boutons d'action dans un message de compétence après qu'un utilisateur a interagi avec une action de republication, d'emplacement ou de soumission de formulaire. Les valeurs autorisées sont all , none ou postback . Lorsque cette option est réglée à all , tous les boutons d'action du message sont désactivés lors de l'interaction. Le réglage de postback désactive uniquement les actions de republication et d'emplacement, et le réglage de none conserve tous les boutons activés même après une interaction. Le comportement activé par cette propriété est indépendant de la configuration au niveau de l'assistant numérique pour la désactivation de la sélection d'actions passées. Vous devez définir les deux configurations séparément.
|
Non | all |
displayActionsAsPills |
Affiche des boutons d'action de forme ovale. | Non | false |
enableAttachment |
Configure le partage des fichiers joints. | Non | true |
enableAttachmentSecurity |
Lorsque cette propriété est réglée à true , des en-têtes supplémentaires sont transmis aux demandes de chargement de pièces jointes afin de s'assurer qu'elles ne peuvent pas être téléchargées sans transmettre de jeton JWT signé valide en tant qu'en-tête d'autorisation.
N'activez pas ce paramètre si la compétence se connecte à une instance ODA de version 20.08 ou s'exécute sur une version antérieure à 20.08. Cette propriété ne s'applique qu'aux connexions à authentification de client activée aux versions 20.12 et supérieures de la plate-forme ODA. |
Non | false |
enableAutocomplete |
Réglez cette propriété à true pour permettre à la compétence de remplir automatiquement la demande de l'utilisateur à l'aide de la meilleure demande possible figurant dans les suggestions de remplissage automatique de la page Create Intent (Créer une intention). La compétence affiche ces suggestions lorsque l'utilisateur entre au moins trois caractères. Elle met également en évidence les mots entrés par l'utilisateur qui correspondent aux expressions suggérées en gras.
|
Non | false |
enableBotAudioResponse |
Active l'énoncé des réponses d'une compétence à mesure qu'elles sont reçues à l'aide de l'API de synthèse vocale Web. | Non | false |
enableClearMessage |
Active le bouton d'effacement de message dans l'en-tête du widget de clavardage. | Non | false |
enableDraggableButton |
Permet aux utilisateurs de déplacer le bouton du widget de clavardage lorsqu'il bloque le contenu de la page Web. Cette fonctionnalité peut également être utilisée pour les navigateurs Safari Android et iOS. | Non | false |
enableHeadless |
Permet d'utiliser la trousse SDK Oracle Web sans son interface utilisateur pour développer votre propre interface utilisateur de clavardage. | Non | false |
enableLocalConversationHistory |
Permet le chargement dans le navigateur de la conversation précédente associée à un userId donné une fois le widget initialisé.
|
Non | false |
enableLongPolling |
Utiliser des demandes HTTP en cas d'échec de la connexion WebSocket. | Non | false |
enableSecureConnection |
Configure la communication sécurisée (https et http , et wss et ws ).
|
Non | true |
enableSpeech |
Si elle est réglée à true , cette propriété active la fonction de reconnaissance de la parole du microphone. Par exemple :
|
Non | false |
enableSpeechAutoSend |
Lorsque cette propriété est réglée à true (valeur par défaut), la réponse vocale de l'utilisateur est automatiquement envoyée au serveur de clavardage (et s'affiche en tant que message envoyé dans le widget de clavardage). Lorsque cette propriété est réglée à false , la réponse vocale de l'utilisateur est affichée dans le champ de texte du message avant d'être envoyée au serveur de clavardage afin que l'utilisateur puisse la modifier avant de l'envoyer manuellement, ou qu'il puisse supprimer le message.
|
Non | true |
focusOnNewMessage |
Place la focalisation soit sur le champ d'entrée d'utilisateur, soit sur le premier bouton d'action d'un nouveau message reçu.
|
Non | input |
multiLangChat |
Permet au widget de clavardage de détecter la langue d'un utilisateur et de permettre à celui-ci de sélectionner une langue de préférence dans un menu déroulant de l'en-tête. Vous définissez le menu avec un objet qui spécifie la langue principale et un tableau de deux balises linguistiques ou plus (le tableau supportedLangs , décrit dans Clavardage multilingue).
|
Non | S.O. |
name |
Nom de l'instance. Fournit un espace de noms à l'instance et est utilisé comme préfixe pour les noms de classe CSS et les ID d'élément. | Non | oda-chat |
openChatOnLoad |
Développe le widget de clavardage lorsque la page est chargée. | Non | false |
openLinksInNewWindow |
Remplace les préférences du navigateur de l'utilisateur en ouvrant les liens dans une nouvelle fenêtre. Ce paramètre s'applique à tous les liens présents dans la conversation, y compris les boutons d'action, les liens de traitement de secours pour les fichiers joints et les liens de carte. | Non | false |
showConnectionStatus |
Active l'affichage du statut de la connexion dans l'en-tête du widget de clavardage. | Non | false |
showPrevConvStatus |
Affiche les messages de statut à la fin des messages des conversations précédentes. | Non | true |
showTypingIndicator |
Affiche une bulle de clavardage lors de l'attente d'une réponse. | Non | true |
Fonction
- Imiter une conversation lancée par une compétence.
- Intégrer du contenu en haut et en bas de la fenêtre de clavardage, fixe ou pouvant être parcouru.
- Définissez les paramètres régionaux.
- Définir le mode de débit.
- Définir les paramètres régionaux et la voix pour la synthèse de la parole.
Propriété | Description | Obligatoire? | Valeur par défaut |
---|---|---|---|
customHeaderElementId |
Nomme l'ID de l'élément <div> ajouté à l'en-tête du widget de clavardage.
|
Non | S.O. |
delegate |
Objet qui définit un délégué pour la réception de rappels avant certains événements de l'une conversation. L'objet delegate permet au code d'interagir avec les messages d'utilisateur et les réponses de compétence avant l'envoi des messages et l'affichage des réponses.
|
Non | S.O. |
embedBottomScrollId |
ID de l'élément ajouté en tant que contenu défilant au bas du clavardage. Utilisez cette propriété pour ajouter du contenu personnalisé dans la vue de conversation du widget de clavardage. | Non | S.O. |
embedBottomStickyId |
ID de l'élément utilisé pour le contenu fixe affiché au bas du clavardage. Utilisez cette propriété pour ajouter du contenu personnalisé dans la vue de conversation du widget de clavardage. | Non | S.O. |
embedded |
Réglez cette propriété à true pour activer le mode intégré pour le widget de clavardage. En plus de paramétrer cette propriété, vous devez nommer l'élément div qui abrite le widget dans la propriété targetElement .
|
Non | false |
embeddedVideo |
Le réglage de cette option à true intègre des liens pour les vidéos YouTube, Daily Motion et Oracle Video Hub afin qu'elles puissent être lues à partir du widget de clavardage.
|
Non | false |
embedTopscrollId |
ID de l'élément div ajouté en tant que contenu défilant en bas du widget de clavardage.
|
Non | S.O. |
embedTopStickyId |
ID de l'élément div utilisé pour le contenu fixe qui apparaît en haut du widget de clavardage. Utilisez cette propriété pour ajouter du contenu personnalisé dans la vue de conversation du widget de clavardage. Par exemple, l'élément top-text div dans l'extrait de code suivant est référencé en tant que embedTopStickyId: 'top-text' :
Le tutoriel de la trousse SDK Web décrit comment configurer cette propriété et définir le défilement et le non-défilement des éléments du widget de clavardage.
|
Non | S.O. |
enableAgentSneakPreview |
Envoie le texte entré par l'utilisateur et le statut de saisie à l'agent. | Non | false |
enableAutocompleteClientCache |
Active la mise en mémoire cache côté client pour réduire les appels du serveur lorsque la fonction de remplissage automatique est en cours d'utilisation. | Non | false |
enableDefaultClientResponse |
Lorsque cette option est réglée à true , le client affiche les réponses par défaut lorsque la réponse de la compétence a été retardée ou lorsqu'il n'y a aucune réponse de la compétence.
|
Non | false |
enableEndConversation |
Permet à l'utilisateur de mettre fin à la conversation et de réinitialiser la session de clavardage. Il efface également l'historique de conversation local, se déconnecte du serveur de clavardage et minimise le widget | Non | true |
enableHeaderActionCollapse |
Réduit les actions d'en-tête dans un bouton de menu si le nombre d'icônes est supérieur à deux. | Non | true |
enableResizableWidget |
Permet à l'utilisateur de redimensionner le widget de clavardage après l'avoir développé. Si le widget est situé sur le côté droit de la page Web, les utilisateurs ajustent ses dimensions en faisant glisser le bord supérieur, le bord gauche ou le coin supérieur gauche. De la même façon, si le widget est placé sur le côté gauche, les utilisateurs redimensionnent le bord supérieur, le bord droit ou le coin supérieur droit. | Non | false |
enableSendTypingStatus |
Envoie le statut de saisie de l'utilisateur à l'agent humain. | Non | false |
enableTabsSync |
Synchronise les messages de conversation entre différents onglets pour un userId et un channelId donnés.
|
Non | true |
enableVoiceOnlyMode |
Active le mode voix seule. L'activation du mode voix seule élimine la nécessité pour les utilisateurs de cliquer sur le bouton micro à chaque fois après avoir reçu un message du robot. Avec ce mode activé, le SDK lance automatiquement la reconnaissance vocale une fois que le TTS (Text-to-Speech) pour le message reçu a été prononcé. | Non | false |
hotkeys |
Objet contenant une liste de touches du clavier qui activent ou mettent en évidence des éléments à l'aide de la touche ALT combinée au raccourci transmis. | Non | {...} Par exemple :
|
i18n |
Objet contenant les champs de paramètres régionaux. Les paramètres régionaux contiennent des paires nom-valeur i18n pour les chaînes de texte utilisées dans le widget.
|
Non | {'en-us':{…}} Par exemple :
|
initBotAudioMuted |
Initialise l'énoncé du message de compétence en mode mis en sourdine. Cette fonction ne peut être activée que lorsque vous réglez enableBotAudioResponse à true .
|
Non | true |
initMessageOptions |
Alors qu'initUserHiddenMessage envoie le message "masqué" initial seulement après que le client s'est connecté à la compétence et que le widget de clavardage a été développé, vous pouvez utiliser ce paramètre pour envoyer des messages dès que le client s'est connecté à la compétence, que le widget soit développé ou non. Ce paramètre accepte un objet ayant une propriété sendAt . La propriété sendAt peut avoir l'une des deux valeurs suivantes : 'init' ou 'expand' . Si vous sélectionnez 'init' , les messages initiaux sont envoyés dès que la connexion est effectuée. Si vous sélectionnez 'expand' , les messages initiaux ne sont envoyés que lorsque le widget est développé. Dans l'extrait suivant, le message est envoyé lorsque la connexion est établie en raison de sendAt: 'init' : Gardez à l'esprit que la facturation commence lorsque le message initial a été envoyé, même si le widget est toujours fermé (comme c'est le cas avec sendAt: 'init ').
|
S.O. | |
initUserHiddenMessage |
Message utilisé pour lancer une conversation. Ce message peut être une chaîne de texte ou des données utiles de message. Par exemple : initUserHiddenMessage: 'Hi' . Ces messages ne dépendent pas de l'historique de l'utilisateur. Ce message est envoyé dans chaque session après que le client s'est connecté à la compétence et que le widget de clavardage a été développé. Pour envoyer le premier message uniquement lorsque l'historique de conversation est vide, vous devez lier les modules d'écoute d'événement à l'aide de la méthode Bots.on() . Par exemple, vous pouvez le faire en liant les événements WIDGET_OPENED et NETWORK , décrits dans les documents sur la trousse SDK.
|
Non | S.O. |
initUserProfile |
Met à jour le profil de l'utilisateur avant le début d'une conversation. Le format des données utiles du profil doit être { profile: {...} } . Par exemple : Cette fonction met à jour le contexte d'utilisateur une fois que le client est connecté à la compétence et que le widget de clavardage a été développé. Ainsi, le profil de l'utilisateur peut apparaître dans le premier message de réponse à l'utilisateur. Par exemple, la compétence peut accueillir l'utilisateur avec un message du type "Bienvenue, Jean Martin ! Votre dernière commande était une pizza au pepperoni de taille moyenne." Ces messages sont envoyés après que le client s'est connecté à la compétence et que le widget de conversation est développé. Ces messages de profil d'utilisateur sont envoyés après que le client s'est connecté à la compétence et que le widget de clavardage est développé. Un message de profil d'utilisateur est toujours envoyé avant le message "masqué" initial si initUserHiddenMessage est également transmis.
Vous ne pouvez transmettre la propriété |
Non | S.O. |
isDebugMode |
Active le mode de débit. | Non | false |
linkHandler |
Objet qui remplace la configuration de traitement des clics sur les liens intégrés dans les réponses de la compétence. Cet objet traite les liens de deux façons : target , qui accepte une chaîne, et onclick , qui accepte une fonction. Vous pouvez définir target ou onclick , mais pas les deux. Lorsque vous voulez que tous les liens s'ouvrent dans une vue Web, transmettez linkHandler: { target: 'oda-chat-webview' } .
|
Non |
|
locale |
Paramètres régionaux par défaut pour les chaînes de texte du widget. Les paramètres régionaux transmis lors de l'initialisation sont prioritaires sur ceux du navigateur des utilisateurs. En l'absence de correspondance exacte, la trousse SDK tente de mettre en correspondance la langue la plus proche. Par exemple, si les paramètres régionaux sont 'da-dk' , mais que des traductions i18n sont fournies uniquement pour 'da' , la traduction 'da' est utilisée. S'il n'y a pas de traductions pour les paramètres régionaux transmis, les traductions associées aux paramètres régionaux du navigateur sont recherchées et appliquées. En l'absence totale de traductions, les paramètres régionaux par défaut, 'en' , sont utilisés.
|
Non | en-us |
messageCacheSizeLimit |
Nombre maximal de messages à enregistrer dans localStorage à la fois.
|
Non | 2000 |
reconnectMaxAttempts |
Nombre de tentatives effectuées par le widget de clavardage pour se reconnecter lorsque la connexion initiale échoue. | Non | 5 |
shareMenuItems |
Éléments du menu contextuel de partage. Cette propriété accepte un tableau de valeurs de chaîne mappées à des éléments de menu :
['audio', 'file'] , par exemple). Tous les éléments du menu sont disponibles lorsque le tableau est vide, lorsque les éléments du tableau sont incorrects (['audio', 'visuil'] ou lorsque shareMenuItems n'a pas été défini.
|
Non |
|
skillVoices |
Tableau contenant les voix préférées utilisées pour narrer les réponses. Chaque élément du tableau doit être un objet avec deux champs : lang et name . name est facultatif. Le premier élément correspondant à une voix disponible dans le système sera utilisé comme voix de narration. Ce paramètre est obsolète.
|
Non | System language |
speechLocale |
Paramètres régionaux attendus du message vocal de l'utilisateur servant à la reconnaissance vocale. Anglais É.-U. ('en-US' ) est le paramètre régional par défaut. Les autres paramètres régionaux pris en charge sont : anglais australien ('en-au' ), anglais britannique ('en-uk' ), français ('fr-fr' ), allemand ('de-de' ), italien ('it-it' ), indien-hindi (hi-in ), indien-anglais (en-in ), portugais brésilien ('pt-br' ) et espagnol ('es-es' ). Les paramètres régionaux de la parole peuvent être définis dynamiquement en appelant l'API setSpeechLocale('<locale>') . La reconnaissance vocale ne fonctionnera pas si une région non prise en charge est transmise.
|
Non | 'en-us' |
storageType |
Mécanisme de stockage Web servant à conserver l'historique des conversations pour les utilisateurs dont l'identificateur userId est transmis par l'application hôte. Les valeurs prises en charge sont 'localStorage' et 'sessionStorage' . Les conversations des utilisateurs anonymes sont toujours stockées dans sessionStorage et sont automatiquement supprimées une fois la session du navigateur terminée.
|
Non | 'localStorage' |
targetElement |
Nomme l'élément div dans lequel le widget de clavardage est intégré à la page Web. Dans l'extrait de code suivant, l'élément chat-container div est référencé en tant que targetElement: 'chat-container' :
Consultez le tutoriel de la trousse SDK Web pour savoir comment ajouter l'élément div et définir son style.
|
Non | S.O. |
theme |
Thème de disposition principal. Trois thèmes sont disponibles : 'default' , 'redwood-dark' et 'classic' .
|
Non | default |
timestampFormat |
Formate l'horodatage de transmission qui accompagne les messages. Accepte les valeurs d'un objet DateTimeFormat options ou sous forme de modèle comme décrit dans Personnaliser l'horodatageNote : Cela contrôle l'horodatage du message, et non l'horodatage de l'en-tête. . |
Non |
|
timestampHeaderFormat |
Personnalisez le format d'horodatage dans l'en-tête du message. Vous pouvez utiliser un objet DateTimeFormat options ou une chaîne de modèle comme décrit dans Personnaliser l'horodatage.
|
Non | S.O. |
timestampHeaderMode |
Configure les en-têtes d'horodatage qui apparaissent au-dessus du premier message du jour. 'absolute' (format par défaut) affiche l'horodatage complet dans un format absolu, 'relative' l'affiche dans un format relatif et 'none' masque entièrement l'en-tête d'horodatage.
|
Non | absolute |
timestampMode |
Configure le mode d'affichage des heures en tant qu'horodatage absolu qui apparaît sur chaque message, ou en tant qu'horodatage relatif qui apparaît uniquement sur le dernier message.
Note : Cela contrôle l'horodatage du message, et non l'horodatage de l'en-tête. |
Non | default (pour les horodatages absolus), ou relative .
|
ttsService |
Tableau contenant les voix préférées utilisées pour les réponses vocales via le texte à la parole (TTS). Chaque élément du tableau doit être un objet avec au moins un des champs suivants : lang et name . Le premier élément correspondant à une voix disponible dans le système sera utilisé pour le TTS.
|
Non | oracle |
typingIndicatorTimeout |
Définit le délai en secondes au bout duquel l'indicateur de saisie est automatiquement supprimé si le widget de clavardage n'a pas encore reçu la réponse. | Non | 20 |
typingStatusInterval |
Définit l'intervalle, en secondes, pour ajuster le statut de saisie envoyé à l'agent humain. | Non | 3 |
webViewConfig |
Personnalise la vue Web dans le widget. | Non | { referrerPolicy: 'no-referrer-when-downgrade', closeButtonType: 'icon', size: 'tall' } |
En savoir plus et lire moins Boutons pour les réponses de compétence multi-paragraphe
Vous pouvez optimiser l'expérience utilisateur pour les messages de compétence à plusieurs paragraphes en ajoutant des boutons Read More et Read Less.
Description de l'illustration readmore.png
Vous pouvez ajouter le code côté client pour ces boutons, qui masquent et affichent les paragraphes, à l'aide de l'objet delegate
et des fonctions personnalisées.
- Dans
settings.js
, définissez un objetdelegate
avec une fonction de rappelbeforeDisplay
dans la déclarationconst chatSettings
:
Si le message est de typedelegate: { beforeDisplay: function (message) { var messagePayload = message && message.messagePayload; if (messagePayload.type === 'text') { messagePayload.text = splitParagraph(messagePayload.text); } return message; } }
text
,beforeDisplay
appelle la fonctionsplitParagraph
personnalisée pour fractionner le texte par le premier paragraphe. - Déclarez les variables pour les fonctions de vue
splitParagraph
ettoggleParagraph
personnalisées :var PREFIX_DOTS = 'dots_'; var PREFIX_MORE = 'more_'; var PREFIX_TOGGLE = 'toggle_button';
- Ajoutez l'expression de fonction
splitParagraph
et la fonctiontoggleParagraphView
.splitParagraph
est une expression de fonction IIFE (Immediately Invoked Function Expression) qui isole la variableglobalIDCounter
afin qu'elle ne soit accessible qu'à partir de la fonctionsplitParagraph
. Le code identifie un paragraphe ("\n\n"
) et divise le texte en conséquence. Il ajoute ensuite trois points (...) pour indiquer qu'il y a plus de texte à afficher et un bouton Read More pour afficher le texte restant.var splitParagraph = (function () { var globalIDCounter = 0; return function splitParagraph(text) { var paragraphs = text.split('\n\n'); if (paragraphs.length > 1) { var HTMLText = '<p>' + paragraphs[0] + '<span id="' + PREFIX_DOTS + globalIDCounter + '">...</span></p>' + '<span id="' + PREFIX_MORE + globalIDCounter + '" class="more">'; for (var i = 1; i < paragraphs.length; i++) { HTMLText += '<p>' + paragraphs[i] + '</p>'; } HTMLText += '</span><button id="' + PREFIX_TOGGLE + globalIDCounter + '" class="readMore" onclick="toggleParagraphView(' + globalIDCounter + ')">Read More</button>'; globalIDCounter++; return HTMLText; } else { return text; } } })(); function toggleParagraphView(elemID) { var dots = document.getElementById(PREFIX_DOTS + elemID); var textMore = document.getElementById(PREFIX_MORE + elemID); var buttonToggle = document.getElementById(PREFIX_TOGGLE + elemID); if (!dots || !textMore || !buttonToggle) { return; } if (dots.style.display === 'none') { dots.style.display = 'inline'; buttonToggle.innerText = 'Read More'; textMore.style.display = 'none'; } else { dots.style.display = 'none'; buttonToggle.innerText = 'Read Less'; textMore.style.display = 'inline'; } }
- Configurez et stylisez (facultativement) les boutons Read More et Read Less. Le CSS inclut un style
display:none
pour afficher ou masquer les boutons en fonction de l'état de l'affichage du texte long.- Si vous ne voulez pas styliser les boutons, ajoutez le code suivant :
<style> .more { display: none; } </style>
- Si vous voulez styliser les boutons, vous pouvez faire quelque chose comme ceci :
<style> .readMore { color: #fff !important; background-color: red; font-size: 12pt; padding: 4px; outline: 0; -moz-outline: 0; border: 0; } .readMore:hover { color: #fff !important; background-color: #606060 !important; } .more { display: none; } </style>
- Si vous ne voulez pas styliser les boutons, ajoutez le code suivant :
Présentation
- Définir la position du widget dans la page Web.
- Définir les dimensions, les couleurs et le style de police du widget de clavardage.
- Définir le remplissage des messages dans le widget.
- Définir la position de l'icône de la pastille d'avis par rapport au bouton du robot.
- Définir la position de départ de la conversation dans le widget.
<script>
const chatSettings = {
URI: YOUR_URI,
channelId: YOUR_CHANNELID,
font: '14px "Helvetica Neue", Helvetica, Arial, sans-serif', //layout modification property
height: '60vh', //layout modification property
width: '20vw', //layout modification property
"colors": { //custom colors property
"branding": "#01538A",
"text": "#B20637"
},
}
...
</script>
Propriété | Description | Obligatoire? | Valeur par défaut |
---|---|---|---|
actionsLayout |
Définit la direction de disposition des actions locales. Lorsque vous réglez ce paramètre à horizontal , ces boutons sont disposés horizontalement et s'encapsuleront si le contenu déborde.
|
Non | vertical |
badgePosition |
Position de l'icône de la pastille par rapport au bouton de l'icône. | Non | {"top": "0", "right": "0"} |
cardActionsLayout |
Définit la direction de disposition pour les actions de carte. Lorsque vous réglez ce paramètre à horizontal , ces boutons sont disposés horizontalement et s'encapsuleront si le contenu.
|
Non | vertical |
colors |
Couleurs utilisées dans le widget de clavardage. | Non | {"branding": "#1B8FD2", "text": "#212121", "textLight": "#737373"} |
conversationBeginPosition |
Position de début de la conversation dans le widget. Si cette propriété est réglée à top , les premiers messages apparaissent en haut du widget. Si elle est réglée à bottom , la conversation commence en bas.
|
Non | bottom |
font |
Police utilisée dans le widget de clavardage. | Non | 16px "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue |
fontFamily |
Famille de polices utilisée pour tout le texte du widget de clavardage. Ce paramètre a priorité sur la configuration font .
|
Non | "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue" |
fontSize |
Taille de police à utiliser pour l'en-tête, la bulle et le texte de pied de page dans le widget. Ce paramètre a priorité sur la configuration font .
|
Non | 16px |
globalActionsLayout |
Définit la direction de disposition pour les actions globales. Si ce paramètre est réglé à 'horizontal', les boutons sont placés horizontalement et s'encapsuleront si le contenu déborde. | Non | vertical |
height |
Hauteur du widget de clavardage définie par l'une des valeurs de <length> data type. | Non | 70vh |
messagePadding |
Remplissage autour des messages dans le widget de clavardage. | Non | 15px |
position |
Emplacement du widget de clavardage dans la fenêtre du navigateur. Il doit être transmis en tant qu'objet JSON. | Non | {bottom: '20px', right: '20px'} |
width |
Largeur du widget de clavardage définie sur l'une des valeurs de <length> data type. | Non | 30vw |
Icônes de bouton d'en-tête personnalisé



colors.headerButtonFill
des paramètres initiaux.
Il est possible que la personnalisation des couleurs ne fonctionne pas pour tous les SVG. En effet, ceux-ci peuvent être multicolores ou avoir leur propre couleurs de trait et de remplissage.
Icône d'icône | Fonction | Indicateur de fonction | Personnaliser |
---|---|---|---|
Effacer le message | Efface les messages actuels et anciens dans la conversation. | enableClearMessage: true |
'<image URL | SVG string>' |
Réponse audio | Permet d'activer/de désactiver l'audio des réponses des compétences à mesure qu'elles sont reçues. Étant donné qu'il s'agit d'un bouton à bascule, il est doté de deux états : énoncé activé, où les réponses sont vocales et énoncé désactivé, où elles ne le sont pas. | enableBotAudioResponse: true |
|
Fermer | Réduit le widget et affiche le bouton de lancement ![]() |
Aucun : Cette icône est toujours activée dans le widget de clavardage. Elle n'apparaît pas en mode intégré. | closeIcon : '<image URL | SVG string>' |
Couleurs personnalisées
- Vous pouvez transmettre la configuration
colors
:colors: { "branding": "#e00", "text": "#545454" },
- Vous pouvez également utiliser des variables CSS définies dans l'encapsuleur de clavardage (
.oda-chat-wrapper
) :.oda-chat-wrapper { --color-branding: '#e00'; --color-text: '#545454'; } }
Conseil :
Nous recommandons de modifier les couleurs à l'aide de variables CSS.Variable CSS | Clé | Description |
---|---|---|
--color-actions-background |
actionsBackground |
Couleur d'arrière-plan des boutons d'action |
--color-actions-background-hover |
actionsBackgroundFocus |
Couleur d'arrière-plan des boutons d'action lorsqu'ils sont actifs. |
--color-actions-background-focus |
actionsBackgroundHover |
Couleur d'arrière-plan de pointage des boutons d'action |
--color-actions-border |
actionsBorder |
Couleur de la bordure des boutons d'action |
--color-actions-text |
actionsText |
Couleur du texte des boutons d'action |
--color-actions-text |
actionsTextFocus |
Couleur du texte des boutons d'action lorsqu'ils sont actifs |
--color-actions-text-focus |
actionsTextHover |
Couleur de pointage du texte des boutons d'action |
--color-user-message-background |
botMessageBackground |
Couleur d'arrière-plan de la bulle de message de réponse de la compétence |
--color-bot-text |
botText |
Couleur de texte d'un message envoyé par la compétence |
--color-branding |
branding |
Couleur de marque principale du widget. Cette couleur est utilisée comme arrière-plan de l'en-tête et comme couleur de pointage pour les boutons du pied de page. |
--color-card-background |
cardBackground |
Couleur d'arrière-plan utilisée pour une carte. |
--color-conversation-background |
conversationBackground |
Couleur utilisée pour l'arrière-plan du volet de conversation. |
--color-danger-actions-background |
dangerActionsBackground |
Couleur d'arrière-plan du bouton d'action de danger |
--color-danger-actions-background-focus |
dangerActionsBackgroundFocus |
Couleur d'arrière-plan du bouton d'action de danger sur le focus |
--color-danger-actions-background-hover |
dangerActionsBackgroundHover |
Couleur d'arrière-plan du bouton d'action de danger lors du pointage |
--color-danger-actions-border |
dangerActionsBorder |
Couleur de la frontière du bouton d'action de danger |
--color-danger-actions-text |
dangerActionsText |
Couleur du texte du bouton d'action de danger |
--color-danger-actions-text-focus |
dangerActionsTextFocus |
Couleur du texte du bouton d'action de danger lors de la mise au point |
--color-danger-actions-text-hover |
dangerActionsTextHover |
Couleur du texte du bouton d'action de danger lors du survol |
--color-danger-form-actions-background |
dangerFormActionsBackground |
Couleur d'arrière-plan des actions de danger dans les messages Table, Form, Table-Form et Edit-Form |
--color-danger-form-actions-background-focus |
dangerFormActionsBackgroundFocus |
Couleur d'arrière-plan des actions de danger sur le focus dans les messages Table, Form, Table-Form et Edit-Form |
--color-danger-form-actions-background-hover |
dangerFormActionsBackgroundHover |
Couleur d'arrière-plan des actions de danger lors du survol des messages Table, Form, Table-Form et Edit-Form |
--color-danger-form-actions-border |
dangerFormActionsBorder |
Couleur de bordure des actions de danger dans les messages Table, Form, Table-Form et Edit-Form |
--color-danger-form-actions-text |
dangerFormActionsText |
Couleur de texte des actions de danger dans les messages Table, Form, Table-Form et Edit-Form |
--color-danger-form-actions-text-focus |
dangerFormActionsTextFocus |
Couleur de texte des actions de danger sur le focus dans les messages Table, Form, Table-Form et Edit-Form |
--color-danger-form-actions-text-hover |
dangerFormActionsTextHover |
Couleur de texte des actions de danger lors du survol des messages Table, Form, Table-Form et Edit-Form |
--color-error-border |
errorBorder |
Couleur de bordure d'une bulle de message d'erreur. La couleur est utilisée comme couleur de bordure du message d'erreur au niveau du formulaire qui est affiché dans les messages Edit-Form. |
--color-error-message-background |
errorMessageBackground |
Couleur d'arrière-plan d'une bulle de message d'erreur. La couleur est utilisée comme couleur d'arrière-plan du message d'erreur au niveau du formulaire qui est affiché dans les messages Edit-Form. |
--color-error-title |
errorTitle |
Couleur du titre du contenu du message d'erreur. La couleur est utilisée comme couleur de texte d'erreur du message d'erreur au niveau du formulaire qui est affiché dans les messages Edit-Form. |
--color-footer-background |
footerBackground |
Couleur utilisée pour l'arrière-plan du pied de page. |
--color-footer-button-fill |
footerButtonFill |
Couleur de remplissage d'une icône SVG utilisée dans les boutons situés dans le pied de page du clavardage. |
--color-form-actions-background |
formActionsBackground |
Couleur d'arrière-plan des actions de formulaire |
--color-form-actions-background-focus |
formActionsBackgroundFocus |
Couleur d'arrière-plan des actions de formulaire sur le focus |
--color-form-actions-background-hover |
formActionsBackgroundHover |
Couleur d'arrière-plan des actions de formulaire lors du survol |
--color-form-actions-border |
formActionsBorder |
Couleur de bordure des actions de formulaire |
--color-form-actions-text |
formActionsText |
Couleur de texte des actions de formulaire |
--color-form-actions-text-focus |
formActionsTextFocus |
Couleur de texte des actions de formulaire sur le focus |
--color-form-actions-text-hover |
formActionsTextHover |
Couleur de texte des actions de formulaire lors du survol |
--color-form-background |
formBackground |
La couleur de fond des formes |
--color-form-error |
formError |
Couleur de remplissage SVG de l'icône dans les messages d'erreur au niveau du champ et du formulaire qui s'affichent dans les messages Edit-Form. La couleur est utilisée comme couleur de bordure du champ d'entrée en cas d'erreur dans les messages Edit-Form. |
--color-form-error-text |
formErrorText |
Couleur de texte d'un message d'erreur au niveau du champ affiché dans les messages Modifier le formulaire |
--color-form-header-background |
formHeaderBackground |
Couleur d'arrière-plan des titres de formulaire |
--color-form-header-text |
formHeaderText |
Couleur de texte des titres de formulaire |
--color-form-input-background |
formInputBackground |
Couleur d'arrière-plan des champs d'entrée dans les messages Edit-Form |
--color-form-input-border |
formInputBorder |
Couleur de bordure des champs d'entrée dans les messages Modifier le formulaire |
--color-form-input-border-focus |
formInputBorderFocus |
Couleur de bordure des champs d'entrée sur le focus dans les messages de modification de formulaire |
--color-form-input-text |
formInputText |
Couleur de texte des champs d'entrée dans les messages Edit-Form |
--color-form-label |
formLabel |
Couleur des étiquettes de formulaire |
--color-form-text |
formText |
Couleur de texte des formulaires |
--color-global-actions-background |
globalActionsBackground |
Couleur d'arrière-plan des boutons d'action globaux |
--color-global-actions-background-focus |
globalActionsBackgroundFocus |
Couleur d'arrière-plan des boutons d'action globaux lorsqu'ils sont actifs. |
--color-global-actions-background-hover |
globalActionsBackgroundHover |
Couleur d'arrière-plan de pointage des boutons d'action globaux. |
--color-global-actions-border |
globalActionsBorder |
Couleur de la bordure des boutons d'action globaux |
--color-global-actions-text |
globalActionsText |
Couleur du texte des boutons d'action globaux |
--color-global-actions-text-focus |
globalActionsTextFocus |
Couleur du texte des boutons d'action globaux lorsqu'ils sont actifs. |
--color-global-actions-text-hover |
globalActionsTextHover |
Couleur du texte des boutons d'action globaux lorsque les utilisateurs pointent dessus. |
--color-header-background |
headerBackground |
Couleur d'arrière-plan de l'en-tête du widget de clavardage |
--color-header-button-fill |
headerButtonFill |
Couleur de remplissage des icônes SVG utilisées pour les boutons de l'en-tête du clavardage. |
--color-header-text |
headerText |
Couleur du titre de l'en-tête du clavardage |
--color-input-background |
inputBackground |
Couleur d'arrière-plan du champ d'entrée de message dans le pied de page du clavardage |
--color-input-text |
inputText |
Couleur du texte d'entrée de message dans le pied de page du clavardage |
--color-links |
links |
Couleur des liens intégrés dans les messages de compétence |
--color-error-border |
S.O. | Couleur de bordure d'une bulle de message d'erreur |
--color-error-message-background |
S.O. | Couleur d'arrière-plan d'une bulle de message d'erreur |
--color-error-text |
S.O. | Couleur de description du contenu d'un message d'erreur |
--color-error-title |
S.O. | Couleur de titre du contenu d'un message d'erreur |
--color-footer-button-background-hover |
S.O. | Couleur d'arrière-plan du pointage des boutons de pied de page |
--color-footer-button-fill-hover |
S.O. | Couleur de remplissage du pied de page de l'en-tête lors du survol |
--color-header-button-background-hover |
S.O. | Couleur d'arrière-plan du pointage des boutons d'en-tête |
--color-header-button-fill-hover |
S.O. | Couleur de remplissage des boutons d'en-tête sur le pointage |
--color-input-border |
S.O. | Couleur de bordure du champ d'entrée |
--color-user-links |
S.O. | Couleur des liens intégrés dans les messages d'utilisateur. |
--color-popup-background |
S.O. | Couleur d'arrière-plan des invites et des fenêtres contextuelles |
--color-popup-button-background |
S.O. | Couleur d'arrière-plan des boutons contextuels |
--color-popup-button-text |
S.O. | Couleur du texte des boutons contextuels |
--color-popup-horizontal-rule |
S.O. | Couleur de règle horizonatale pour le séparateur pour l'action de menu de clavardage multi-langues |
--color-popup-item-background-hover |
S.O. | Couleur d'arrière-plan lors du survol des éléments de liste contextuelle |
--color-popup-text |
S.O. | Couleur du texte et des icônes des invites et des fenêtres contextuelles |
--color-table-background |
S.O. | Couleur d'arrière-plan des tables |
--color-table-header-background |
S.O. | Couleur d'arrière-plan des en-têtes de table |
--color-table-separator |
S.O. | Couleur de séparateur des rangées de table |
--color-table-text |
S.O. | Couleur de texte des tables |
--color-notification-badge-background |
notificationBadgeBackground |
Couleur d'arrière-plan de la pastille d'avis de message |
--color-notification-badge-text |
notificationBadgeText |
Couleur du texte du nombre de messages dans la pastille d'avis |
--color-primary-actions-background |
primaryActionsBackground |
Couleur d'arrière-plan du bouton d'action principal |
--color-primary-actions-background-focus |
primaryActionsBackgroundFocus |
Couleur d'arrière-plan du bouton d'action principal sur la cible |
--color-primary-actions-background-hover |
primaryActionsBackgroundHover |
Couleur d'arrière-plan du bouton d'action principal lors du pointage |
--color-primary-actions-border |
primaryActionsBorder |
Couleur de la frontière du bouton d'action principale |
--color-primary-actions-text |
primaryActionsText |
Couleur du texte du bouton d'action principal |
--color-primary-actions-text-focus |
primaryActionsTextFocus |
Couleur du texte du bouton d'action principal lors de la mise au point |
--color-primary-actions-text-hover |
primaryActionsTextHover |
Couleur du texte du bouton d'action principal lors du pointage |
--color-primary-form-actions-background |
primaryFormActionsBackground |
Couleur d'arrière-plan des actions principales dans les messages Table, Form, Table-Form et Edit-Form |
--color-primary-form-actions-background-focus |
primaryFormActionsBackgroundFocus |
Couleur d'arrière-plan des actions principales ciblées dans les messages Table, Form, Table-Form et Edit-Form |
--color-primary-form-actions-background-hover |
primaryFormActionsBackgroundHover |
Couleur d'arrière-plan des actions principales lors du survol des messages Table, Form, Table-Form et Edit-Form |
--color-primary-form-actions-border |
primaryFormActionsBorder |
Couleur de bordure des actions principales dans les messages Table, Form, Table-Form et Edit-Form |
--color-primary-form-actions-text |
primaryFormActionsText |
Couleur de texte des actions principales dans les messages Table, Form, Table-Form et Edit-Form |
--color-primary-form-actions-text-focus |
primaryFormActionsTextFocus |
Couleur d'arrière-plan des actions principales ciblées dans les messages Table, Form, Table-Form et Edit-Form |
--color-primary-form-actions-text-hover |
primaryFormActionsTextHover |
Couleur d'arrière-plan des actions principales lors du survol des messages Table, Form, Table-Form et Edit-Form |
--color-rating-star |
ratingStar |
Couleur appliquée aux étoiles de notation dans un message de rétroaction lorsque les utilisateurs les survolent ou les sélectionnent. Si vous ne spécifiez pas de couleur, la couleur branding est utilisée à la place.
|
S.O. | recognitionViewBackground |
Couleur d'arrière-plan de la vue où le texte reconnu s'affiche lorsque les utilisateurs activent le mode vocal. Si vous ne définissez pas cette couleur, celle qui est indiquée pour headerBackground est utilisée à la place.
|
S.O. | recognitionViewButtonFill |
Couleur de remplissage du SVG pour basculer entre les modes voix-texte lorsque les utilisateurs passent en mode vocal. |
--color-recognition-view-text |
recognitionViewText |
Couleur utilisée pour le texte reconnu à partir de l'entrée vocale de l'utilisateur. Si vous ne définissez pas cette couleur, celle qui est indiquée pour text est utilisée à la place.
|
S.O. | shareMenuText |
Couleur utilisée pour les éléments du menu de partage. Cette couleur remplace la valeur définie pour la clé de texte, si elle est transmise. |
--color-table-actions-background-focus |
tableActionsBackgroundFocus |
Couleur d'arrière-plan des actions de table sur le focus |
--color-table-actions-text-focus |
tableActionsTextFocus |
Couleur de texte des actions de table sur le focus |
--color-table-actions-text-hover |
tableActionsTextHover |
Couleur de texte des actions de table lors du survol |
--color-text |
text |
Couleur d texte des messages dans le widget de clavardage. |
-color-text-light |
textLight |
Couleur du texte secondaire des messages ,par exemple, les descriptions de carte dans le widget de clavardage. |
--color-timestamp |
timestamp |
Couleur de l'horodatage relatif. |
--color-typing-indicator |
typingIndicator |
Couleur de remplissage d'arrière-plan utilisée pour l'indicateur de frappe. |
S.O. | userMessageBackgound |
Couleur d'arrière-plan de la bulle utilisée pour les messages d'utilisateur. |
--color-user-text |
userText |
Couleur de texte d'un message envoyé par l'utilisateur. |
--color-visualizer |
visualizer |
Couleur utilisée pour les barres du graphique de visualisation. Si vous ne définissez pas cette couleur, celle qui est indiquée pour branding est utilisée à la place.
|
--color-visualizer-container-background |
visualizerContainerBackground |
Couleur d'arrière-plan du conteneur du visualiseur vocal qui s'affiche lorsque les utilisateurs passent en mode vocal. Si vous ne définissez pas cette couleur, celle qui est indiquée pour userMessageBackgound est utilisée à la place.
|
Vous pouvez définir une image pour
conversationBackground
, headerBackground
et footerBackground
. Ces champs acceptent tout paramètre pouvant être transmis à la propriété background CSS. Par exemple :colors: {conversationBackground: 'no-repeat url("https://images.unsplash.com/photo-1582580470647-e3be5274d6a0?ixlib=rb-1.2.1&auto=format&fit=crop&w=668&q=80")'},
Icônes personnalisées
Vous pouvez personnaliser les icônes, y compris celles de la compétence, du logo de clavardage et des avatars de la compétence et de l'utilisateur.
Conseil :
Les chaînes SVG se chargent plus rapidement que les ressources d'image. Elles permettent également d'animer l'image et de modifier sa couleur. La disposition définie pour la propriététheme
est appliquée aux chaînes SVG pour les boutons de fichiers joints, d'envoi et de microphone, mais non pour les autres ressources d'image.
icons
pour regrouper toutes les icônes personnalisées dans un seul champ. Les icônes antérieures à la version 21.10 sont toujours prises en charge, mais les valeurs transmises avec l'objet icons
ont priorité. Tous les champs de l'objet icons
prennent en charge les chemins de ressource d'image et les chaînes SVG brutes.const settings = {
// ...,
icons: {
rating: '<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 0 24 24"><path d="M15.994 3.006a5.7 5.7 0 00-3.795 1.707L12 4.916l-.199-.202a5.676 5.676 0 00-8.128 0c-2.231 2.275-2.231 5.953 0 8.228L12 21.428l8.326-8.486A5.873 5.873 0 0022 8.828a5.873 5.873 0 00-1.675-4.115A5.693 5.693 0 0016.262 3z"/></svg>'
}
};
Property (version 21.10) | Propriété (versions précédentes) | Description | Compatible avec la chaîne SVG? |
---|---|---|---|
avatarAgent |
agentAvatar |
Pour les compétences intégrant des agents humains, cette icône apparaît avec les messages de ceux-ci. avatarBot (ou agentAvatar ) s'affiche si cette propriété n'est pas définie.
|
Oui |
avatarbot |
botIcon |
Icône qui s'affiche à côté du message de réponse de la compétence. Cette icône de compétence s'affiche uniquement si vous la fournissez. Sinon, aucune icône ne s'affiche. | Oui |
avatarUser |
personIcon |
L'icône qui s'affiche à côté des messages d'utilisateur. Cette icône ne s'affiche pas par défaut; elle s'affiche uniquement si vous la définissez. | Oui |
clearHistory |
clearMessageIcon |
Icône du bouton d'effacement de message situé dans l'en-tête du widget | Oui |
close |
S.O. | Icône affichée pour le bouton Fermer dans les bannières de message d'erreur, les prévisualisations d'image développées et le widget WebView. | Oui |
collapse |
closeIcon |
Icône du bouton de réduction de la vue de clavardage, situé dans l'en-tête de celle-ci. | Oui |
download |
downloadIcon |
Icône utilisée pour le bouton de téléchargement de fichier joint qui apparaît sur chaque message de fichier joint envoyé par la compétence. | download - Oui
|
error |
errorIcon |
URL de l'image utilisée pour l'icône d'erreur. |
|
expandImage |
expandImageIcon |
L'icône utilisée pour l'image développe le contrôle qui apparaît sur chaque message de fichier joint d'image envoyé par la compétence. | expandImage - Oui
|
fileAudio |
audioIcon |
Icône de fichier joint audio, affichée lorsque l'URL de la source du fichier joint est inaccessible. |
|
fileGeneric |
fileIcon |
Icône de fichier joint. |
|
fileImage |
imageIcon |
Icône d'image jointe, qui s'affiche lorsque la source du fichier joint est inaccessible. |
|
fileVideo |
videoIcon |
Icône de vidéo jointe, qui s'affiche lorsque l'URL de la source du fichier joint est inaccessible. |
|
keyboard |
keyboardIcon |
Icône de clavier, affichée dans le bouton qui bascule du mode vocal au mode clavier. | Oui |
launch |
botButtonIcon |
Bouton du robot de la compétence, affiché lorsque le widget de clavardage est réduit. |
|
logo |
logoIcon |
Icône du logo de clavardage affichée dans l'en-tête du widget de clavardage. |
|
mic |
micIcon |
Icône du bouton micro dans le pied de page du widget de clavardage qui s'affiche lorsque | Oui |
rating |
S.O. | Icône affichée pour les boutons d'action de rétroaction dans le composant de notation. Pour une expérience utilisateur optimale pour l'action de survol, transmettez une chaîne d'icône SVG remplie. | rating - Oui
|
send |
sendIcon |
Icône du bouton d'envoi de message | Oui |
shareMenu |
attachmentIcon |
Icône de chargement de fichier joint | Oui |
shareMenuAudio |
S.O. | Icône de l'élément de menu audio dans la fenêtre contextuelle de partage. | Oui |
shareMenuFile |
S.O. | Icône de l'élément de menu de fichier dans la fenêtre contextuelle de partage. | Oui |
shareMenuLocation |
S.O. | Icône du bouton de menu de partage dans la fenêtre contextuelle du menu de partage. | Oui |
shareMenuVisual |
S.O. | Icône de l'élément de menu image/vidéo dans la fenêtre contextuelle du menu de partage | Oui |
ttsOff |
audioResponseOffIcon |
Icône du bouton d'activation/désactivation lorsque les réponses audio sont désactivées. | Oui |
ttsOn |
audioResponseOnIcon |
Icône du bouton d'activation/désactivation lorsque les réponses audio sont activées. | Oui |
typingIndicator |
chatBubbleIcon |
Icône animée dans le volet de conversation qui indique une réponse envoyée par la compétence. | Oui |
chatBubbleIcon
).
Nom de la propriété | Description | Obligatoire? | Valeur par défaut |
---|---|---|---|
chatBubbleIconHeight |
Hauteur de l'icône de la bulle de chargement du clavardage. | Non | 42px |
chatBubbleIconWidth |
Largeur de l'icône de la bulle de chargement du clavardage. | Non | 56px |
Chaînes personnalisées
en-us
. Si vous ne le faites pas, les traductions en-us
sont affichées pour les valeurs manquantes."i18n": {
"fr": {
"chatTitle": "Soutien"
},
"en-us": {
"chatTitle": "Support"
},
"es": {
"chatTitle": "Apoyo"
},
"zh-cn": {
"chatTitle": "支持"
}
}
Si des chaînes personnalisées sont fournies pour des paramètres régionaux autres que en
, toutes les clés doivent être spécifiées pour ces paramètres régionaux. Sinon, les traductions en
sont affichées pour les valeurs manquantes.<script>
const chatSettings = {
URI: '<Chat server URI>',
channelId: '<Channel ID>',
userId: '<User ID>',
fontFamily: '"Helvetica Neue", Helvetica, Arial, sans-serif',
locale: 'en',
enableClearMessage: true,
icons: {
launch: 'style/Robot.png',
avatarBot: 'style/Robot.png',
avatarUser: 'style/userIcon.png'
}
};
function initSDK(name) {
// If WebSDK is not available, reattempt later
if (!document || !WebSDK) {
setTimeout(function() {
initSDK(name);
}, 2000);
return;
}
// Default name is Bots
if (!name) {
name = 'Bots';
}
Clé | Description | Valeur par défaut |
---|---|---|
agent |
Texte utilisé pour l'agent | 'Agent' |
agentMessage |
Indicateur de message de compétence pour les lecteurs d'écran. Il est énoncé par les lecteurs d'écran avant les réponses de la compétence. Le texte (`{0}` ) est remplacé par le nom de l'agent.
|
`'{0} says'` |
attachment_audio |
Texte utilisé pour l'énoncé TTS d'un fichier joint audio. | 'Audio attachment' |
attachment_file |
Texte utilisé pour l'énoncé TTS d'un fichier joint. | 'File attachment' |
attachment_image |
Texte utilisé pour l'énoncé TTS d'un fichier joint d'image. | 'Image attachment' |
attachment_video |
Texte utilisé pour l'énoncé TTS d'un fichier joint de vidéo. | 'Video attachment' |
attachmentAudioFallback |
Message de remplacement qui est affiché si l'audio d'un fichier joint ne peut pas être rendu par le client. Le texte entre {0} et {/0} est réglé à un lien permettant de télécharger le fichier.
|
Your browser does not support embedded audio. However you can {0}download it{/0}. |
attachmentVideoFallback |
Message de remplacement qui est affiché si la vidéo d'un fichier joint ne peut pas être rendue par le client. Le texte entre {0} et {/0} est réglé à un lien permettant de télécharger le fichier.
|
Your browser does not support embedded video. However you can {0}download it{/0} .
|
audioResponseOn |
Infobulle qui s'affiche lorsque l'utilisateur positionne le pointeur de la souris sur le bouton "off" (désactivé) d'un énoncé audio dans l'en-tête. | Turn audio response on |
avatarAgent |
Texte de remplacement utilisé pour l'icône d'agent qui s'affiche à côté des messages d'agent. | Agent icon |
avatarBot |
Texte de remplacement utilisé pour l'icône de compétence affichée à côté des messages de compétence. | Bot icon |
avatarUser |
Texte de remplacement utilisé pour l'icône d'utilisateur affichée à côté des messages d'utilisateur. | User icon |
card |
Identificateur de la carte. | 'Card {0}' . Vous pouvez localiser la chaîne en plaçant le paramètre fictif ordinal ({0} ) avant ou après le mot. Nous continuerons à prendre en charge la chaîne 'Card' utilisée dans les versions précédentes qui n'inclut pas le paramètre fictif ordinal. Pour cette chaîne, l'ordinal est placé après le mot. Si vous voulez mettre en sourdine l'énoncé, transmettez une chaîne vide (card: '' ).
|
cardImagePlaceholder |
Texte fictif qui s'affiche pendant que l'image de carte est extraite et chargée. | Loading image |
cardImagePlaceholder |
Texte fictif qui s'affiche pendant que l'image de carte est extraite et chargée. | Loading image |
cardNavNext |
Étiquette du bouton de navigation de carte pour afficher la carte suivante dans une disposition horizontale. | Next card |
cardNavPrevious |
Étiquette du bouton de navigation de carte pour afficher la carte précédente dans une disposition horizontale. | Previous card |
chatSubtitle |
Définit le sous-titre de la vue de clavardage, qui est affiché sous le titre dans l'en-tête de la vue de clavardage. Si l'indicateur de sous-titre est défini et que l'un et/ou l'autre des indicateurs showConnectionStatus et showTypingIndicator sont réglés à true, le sous-titre s'affiche au lieu du statut de connexion ou de l'indicateur de saisie.
|
S.O. |
chatTitle |
Titre du widget de clavardage affiché dans l'en-tête. | Ask |
clear |
Infobulle qui s'affiche lorsque l'utilisateur positionne le pointeur de la souris sur le bouton d'effacement de message dans l'en-tête. | Clear |
close |
Infobulle qui s'affiche lorsque l'utilisateur positionne le pointeur de la souris sur le bouton de fermeture du widget dans l'en-tête. | Close |
closing |
Texte de statut qui s'affiche lors de la fermeture de la connexion entre le widget de clavardage et le serveur. | Closing |
connected |
Texte de statut qui s'affiche lors de l'établissement de la connexion entre le widget de clavardage et le serveur. | Connected |
connecting |
Texte de statut qui s'affiche lorsque le widget de clavardage se connecte au serveur de clavardage. | Connecting |
connectionFailureMessage |
Message d'échec qui s'affiche lorsque le widget ne peut pas se connecter à la compétence. | Sorry, the assistant is unavailable right now. If the issue persists, contact your help desk. |
connectionRetryLabel |
Étiquette du bouton de nouvelle tentative de connexion. | Try Again |
defaultGreetingMessage |
Réponse d'accueil du client par défaut affichée lorsque la réponse de la compétence n'a pas été reçue dans le nombre de secondes défini par defaultGreetingTimeout. .
|
Hey, Nice to meet you! Allow me a moment to get back to you. |
defaultSorryMessage |
Réponse du client par défaut lorsque la réponse de la compétence n'a pas été reçue, le nombre de secondes défini par typingIndicatorTimeout .
|
Unfortunately, I am not able to get you the right content. Please try again. |
defaultWaitMessage |
Réponse par défaut qui s'affiche à l'intervalle lorsqu'une réponse réelle à la compétence n'a pas été reçue. Cet intervalle est défini, en secondes, par defaultWaitMessageInterval
|
I'm still working on your request. Thank you for your patience! |
disconnected |
Texte de statut qui s'affiche lorsque la connexion entre le widget et le serveur de clavardage est fermée. | Disconnected |
download |
Texte d'accessibilité pour le bouton de téléchargement qui apparaît sur chaque message de fichier joint envoyé par la compétence. | Download |
endConversation |
Infobulle qui s'affiche lorsque vous pointez le curseur de la souris sur le bouton d'en-tête de fin de conversation. | End Conversation |
endConversationConfirmMessage |
Message de confirmation qui s'affiche lorsqu'un utilisateur clique sur le bouton de fin de conversation. | Are you sure you want to end the conversation? |
endConversationDescription |
Message de description qui s'affiche avec le message de confirmation dans l'invite de fin de conversation. | This will also clear your conversation history. |
errorSpeechInvalidUrl |
Message d'erreur affiché lorsque l'URL du serveur vocal n'est pas définie. | ODA URL for connection is not set. Please pass 'URI' parameter during SDK initialization. |
errorSpeechMultipleConnection |
Message d'erreur affiché lorsque plusieurs tentatives de connexion vocale sont effectuées dans un court intervalle. | Another voice recognition is ongoing. Can't start a new one.' |
errorSpeechTooMuchTimeout |
Message d'erreur affiché lorsqu'un utilisateur fournit un message vocal trop long pour être reconnu. | Too much voice input to recognize. Can not generate recognized text. |
errorSpeechUnsupportedLocale |
Message d'erreur affiché lors d'une tentative d'enregistrement si un paramètre régional non pris en charge a été configuré pour la reconnaissance vocale. | The set speech locale is not supported. Cannot start recording. |
imageViewerClose |
Texte d'accessibilité du bouton qui ferme l'image développée. | Close image viewer |
imageViewOpen |
Texte d'accessibilité du bouton qui développe l'image. | Open image viewer |
inputPlaceholder |
Texte fictif qui s'affiche dans le champ d'entrée d'utilisateur. | Type a message |
itemIterator |
Identificateur d'élément dans une liste d'éléments d'un message Table , Form ou Table-Form . Le texte ({0} ) est remplacé par l'index de l'élément.
|
Item {0} |
language_<languageTag> |
Étiquette de la langue représentée par languageTag . Par exemple, English pour en dans la liste déroulante de sélection de langue disponible lorsque vous configurez le clavardage multilingue. |
|
Language Label |
language_detect |
Étiquette de l'option de détection automatique dans le menu déroulant de sélection de langue. | Detect Language |
languageSelectDropdown |
Infobulle qui s'affiche lorsque les utilisateurs positionnent le pointeur de la souris sur le bouton de sélection de la langue dans l'en-tête. | Select chat language |
linkField |
Texte d'énoncé de remplacement pour un champ de lien dans un message Table , Form ou Table-Form . Le paramètre fictif ({0} ) est remplacé par le linkLabel du champ.
|
Click on the highlighted text to open Link for {0} |
noSpeechTimeout |
Texte de statut affiché lorsque le serveur de clavardage ne parvient pas à reconnaître la voix. | Could not detect the voice, no message sent. |
noText |
Étiquette du bouton de confirmation Non. | No |
openMap |
Étiquette du bouton d'action servant à ouvrir une carte d'emplacements. | Open Map |
previousChats |
Texte de statut qui s'affiche à la fin des anciens messages. | Previous conversations |
ratingStar |
Texte de l'infobulle affiché pour chaque étoile de notation dans un message de rétroaction. Le paramètre fictif `{0}` est remplacé par le nombre d'étoiles que l'utilisateur a sélectionné.
|
Rate {0} star |
recognitionTextPlaceholder |
Lorsque le mode vocal est activé, il s'agit du texte de paramètre fictif affiché dans le champ de texte de reconnaissance. | Speak your message |
relTimeDay |
Horodatage relatif qui s'affiche chaque jour depuis la réception du message précédent. {0} est remplacé par le nombre de jours écoulés.
|
{0}d ago |
relTimeHr |
Horodatage relatif qui s'affiche toutes les heures pendant les 24 premières heures suivant la réception du message précédent. {0} est remplacé par le nombre d'heures écoulées.
|
{0}hr ago |
relTimeMin |
Horodatage relatif qui s'affiche chaque minute depuis la réception du dernier message. {0} est remplacé par le nombre de minutes écoulées.
|
{0}min ago |
relTimeMoment |
Horodatage relatif qui s'affiche dix secondes après la réception du message et avant que 60 secondes ne se soient écoulées depuis la réception du dernier message. | A few seconds ago |
relTimeMon |
Horodatage relatif qui s'affiche chaque mois depuis la réception du message précédent. {0} est remplacé par le nombre de mois écoulés.
|
{0}mth ago |
relTimeNow |
Horodatage relatif qui s'affiche pour un nouveau message. | Now |
relTimeYr |
Horodatage relatif qui s'affiche chaque année après la réception du message précédent. {0} est remplacé par le nombre d'années écoulées.
|
{0}yr ago |
requestLocation |
Texte affiché pendant la demande de l'emplacement de l'utilisateur. | Requesting location |
requestLocationDeniedPermission
|
Message d'erreur affiché lorsque l'autorisation d'accéder à un emplacement est refusée. | Location permission denied. Please allow access to share your location, or else type in your location. |
requestLocationDeniedTimeout |
Message d'erreur affiché lorsque la demande d'emplacement n'est pas résolue en raison d'une temporisation. | Taking too long to get your current location. Please try again, or else type in your location. |
requestLocationDeniedUnavailable |
Message d'erreur affiché lorsque la demande d'emplacement est refusée, car l'emplacement courant de l'appareil client n'est pas disponible. | Your current location is unavailable. Please try again, or else type in your location. |
requestLocationString |
Texte d'erreur qui s'affiche lorsque l'utilisateur refuse la demande d'emplacement. | Cannot access your location. Please allow access to proceed further. |
retryMessage |
Texte qui s'affiche lorsque le message de l'utilisateur n'a pas été envoyé au serveur. | Try again |
send |
Infobulle qui s'affiche lorsque l'utilisateur positionne le pointeur de la souris sur le bouton d'envoi dans le pied de page. | Send |
shareAudio |
Texte de l'élément de menu dans la fenêtre contextuelle de partage d'un fichier audio | Share Audio |
shareFailureMessage |
Message d'erreur affiché lorsque le bouton d'action de partage d'un message est sélectionné, mais que l'API de partage n'est pas disponible dans l'appareil client ou que la demande de partage a été rejetée. | Sorry, sharing is not available on this device. |
shareFile |
Texte de l'élément de menu dans la fenêtre contextuelle de partage d'un fichier générique | Share File |
shareLocation |
Texte de l'élément de menu pour le partage d'un emplacement dans la fenêtre contextuelle | Share Location |
shareVisual |
Texte de l'élément de menu dans la fenêtre contextuelle de partage d'un fichier image ou vidéo | Share Image/Video |
skillMessage |
Indicateur de message de compétence pour les lecteurs d'écran. Il est énoncé par les lecteurs d'écran avant les réponses de la compétence. | Skill says |
speak |
Infobulle qui s'affiche lorsque l'utilisateur positionne le pointeur de la souris sur le bouton Speak (Parler) dans le pied de page. | Speak |
typingIndicator |
Texte d'accessibilité pour l'indicateur de saisie. Il est parlé par les lecteurs d'écran. | Waiting for response |
upload |
Infobulle qui s'affiche lorsque l'utilisateur positionne le pointeur de la souris sur le bouton de chargement dans le pied de page. | Share popup |
uploadFailed |
Texte d'erreur affiché en cas d'échec d'un chargement. | Upload Failed. |
uploadFileSizeLimitExceeded |
Texte d'erreur qui s'affiche lorsque la taille du fichier de chargement dépasse la limite. | Upload Failed. File size should not be more than 25MB. |
uploadFileSizeZeroByte |
Texte d'erreur qui s'affiche lorsque la taille du fichier de chargement est de 0 octet. | Upload Failed. Files of size zero bytes cannot be uploaded. |
uploadUnsupportedFileType |
Texte d'erreur qui s'affiche lors d'une tentative de chargement d'un type de fichier non pris en charge. | Upload Failed. Unsupported file type. |
userMessage |
Indicateur de message d'utilisateur pour les lecteurs d'écran. Il est énoncé par les lecteurs d'écran avant les messages d'utilisateur. | I say |
utteranceGeneric |
Description du message de réponse de remplacement utilisé dans l'énoncé. | Message from skill. |
webViewAccessibilityTitle |
Titre d'accessibilité par défaut pour la vue Web lue à haute voix par les lecteurs d'écran. | In-widget WebView to display links |
webViewClose |
Titre label/tooltip par défaut pour le bouton de fermeture de la vue Web.
|
Done |
webViewErrorInfoDismiss |
Infobulle du bouton Ignorer utilisé pour fermer le lien de secours dans la vue Web. | 'Dismiss' |
webViewErrorInfoText |
Texte d'information affiché dans la vue Web lorsqu'il n'est pas possible d'y accéder. Le texte entre {0} et {/0} est réglé au lien initial qui s'ouvre dans un nouvel onglet ou une nouvelle fenêtre.
|
Sorry, we can't open this page in the chat window. Click {0}here{/0} to open it in your browser. |
yesText |
Étiquette du bouton de confirmation Oui. | Yes |
editFieldErrorMessage |
Message d'erreur au niveau du champ qui s'affiche lorsque la valeur entrée par l'utilisateur n'est pas valide pour ce champ. La trousse SDK utilise par défaut ce message lorsque la compétence ne fournit pas de message d'erreur de client. | Field Input is invalid |
editFormErrorMessage |
Message d'erreur au niveau du formulaire affiché sous l'action de soumission du formulaire pour la validation côté client. Ce message s'affiche lorsqu'au moins un des champs n'est pas valide et qu'il y a plusieurs champs. La trousse SDK utilise par défaut ce message lorsque la compétence ne fournit pas de message d'erreur dans les données utiles du message. | Some of the fields need your attention. |
noResultText |
Texte de statut affiché lorsqu'il n'y a aucune correspondance à partir d'une recherche d'utilisateur dans une vue de liste à sélections multiples. | No more results |
Configurer les options du menu de partage
- fichiers multimédias visuels (images et vidéos)
- fichiers audio
- fichiers généraux tels que documents, PDF et feuilles de calcul
- emplacement
Le paramètre
shareMenuItems
vous permet de limiter les éléments qui s'affichent dans le menu de partage. Le paramètre accepte un tableau de chaînes comportant des clés mappées aux éléments du menu de partage : 'visual'
pour l'élément Share Image/Video (Partager image/vidéo), 'audio'
pour l'élément Share Audio (Partager audio), 'file'
pour l'élément Share File (Partager le fichier) et 'location'
pour l'élément Share Location (Partager l'emplacement). Vous pouvez utiliser ces clés, non sensibles à la casse, pour spécifier les éléments disponibles dans le menu (['visual', 'location']
, par exemple). Tous les éléments du menu sont disponibles lorsque le tableau est vide ou lorsqu'une valeur non valide est transmise.
Vous pouvez désactiver la fonctionnalité Fichier joint en réglant
enableAttachment
à false
.
: N'activez pas ce paramètre si la compétence se connecte à une instance ODA de version 20.08 ou s'exécute sur une version antérieure à 20.08. Cette propriété ne s'applique qu'aux connexions à authentification de client activée aux versions 20.12 et supérieures de la plate-forme ODA.
Éléments du menu de partage personnalisé
shareMenuItems
: {
type: string, // Space separated list of file formats, pass '*' to allow all supported file types
label: string, // OPTIONAL, label for the share menu item, should preferably be configured through i18n strings
icon?: string, // OPTIONAL, Icon image source path or SVG source string, the file icon is displayed as fallback
maxSize?: number // OPTIONAL, Maximum file size allowed for upload in KiloBytes, the maximum and fallback value is 25 MB (25600 KB)
}
L'élément de menu peut être transmis avec ou sans la catégorie string
.
Conseil :
Pour prendre en charge les étiquettes dans plusieurs langues, nous recommandons d'utiliser i18n au lieu de la baliselabel
.
shareMenuItems
dans la variable settings
. Vous définissez les étiquettes en les transmettant avec des clés share_
, qui sont également illustrées dans cet extrait. Vous pouvez définir l'étiquette d'un caractère générique (*
) à l'aide de la clé i18n share_all
.const settings = {
shareMenuItems: [ {
type: 'odf',
label: 'Upload ODF',
}, {
type: 'pdf'
}, {
type: 'jpg png jpeg',
icon: 'https://image-source-site/imageicon'
}, {
type: 'doc docx xls',
maxSize: 4096
}],
i18n: {
en: {
share_pdf: 'Upload PDF',
share_jpg_png_jpeg: 'Upload Image',
share_doc_docx_xls: 'Upload document'
}
}
}
Personnaliser les classes CSS
Classe | Composant |
---|---|
oda-chat-launch-button
|
Bouton de lancement du widget de clavardage |
oda-chat-button-clear
|
Bouton d'effacement des messages |
oda-chat-button-close
|
Bouton de fermeture du widget |
oda-chat-button-narration
|
Bouton d'activation/désactivation de la réponse audio de la compétence |
oda-chat-button-send
|
Bouton d'envoi de message |
oda-chat-button-upload
|
Bouton de chargement de fichier |
oda-chat-card
|
Message avec carte |
oda-chat-closing
|
Appliquée en tant que classe apparentée à oda-chat-connection-status lorsque le widget se déconnecte du serveur
|
oda-chat-connected
|
Appliquée en tant que classe apparentée à oda-chat-connection-status lorsque le widget est connecté au serveur
|
oda-chat-connecting
|
Appliquée en tant que classe apparentée à oda-chat-connection-status lorsque le widget se connecte au serveur
|
oda-chat-connection-status
|
Statut de connexion. Chaque valeur de connexion possède également sa propre classe, par exemple oda-chat-connected , oda-chat-disconnected ou oda-chat-connecting .
|
oda-chat-conversation
|
Conteneur de la conversation |
oda-chat-disconnected
|
Appliquée en tant que classe apparentée à oda-chat-connection-status lorsque le widget est déconnecté du serveur
|
oda-chat-footer
|
Pied de page du widget de clavardage |
oda-chat-footer-button
|
Classe commune pour tous les boutons de pied de page |
oda-chat-header
|
En-tête du widget de clavardage |
oda-chat-header-button
|
Classe commune pour tous les boutons d'en-tête |
oda-chat-icon-wrapper
|
Encapsuleur de la compétence ou d'une personne affichée avec le message |
oda-chat-left
|
Encapsuleur du message de la compétence |
oda-chat-logo
|
Logo affiché dans l'en-tête du widget |
oda-chat-message
|
Classe d'encapsuleur commune pour tous les messages de clavardage |
oda-chat-message-action-location
|
Bouton d'action de demande d'emplacement |
oda-chat-message-action-postback
|
Bouton d'action de republication |
oda-chat-message-actions
|
Encapsuleur des boutons d'action |
oda-chat-message-bubble
|
Bulle du message |
oda-chat-message-global-actions
|
Encapsuleur des boutons d'action globaux |
oda-chat-message-icon
|
Image de la compétence ou d'une personne affichée avec le message |
oda-chat-notification-badge
|
Pastille d'avis pour les messages qui n'ont pas été consultés |
oda-chat-rating-star
|
Bouton étoile de notation dans un message de rétroaction |
oda-chat-rating-star-icon
|
Icône SVG du bouton d'étoile d'évaluation |
oda-chat-right
|
Encapsuleur du message de l'utilisateur |
oda-chat-title
|
Titre de l'en-tête du widget |
oda-chat-user-input
|
Zone de texte d'entrée d'utilisateur |
oda-chat-widget
|
Composant de clavardage développé qui encapsule l'en-tête, la conversation et le pied de page du widget |
oda-chat-wrapper
|
Encapsuleur du composant de clavardage |
Personnaliser l'heure
Par défaut, l'horodatage qui s'affiche dans l'en-tête lorsque timestampHeaderMode
et timestampHeaderFormat
sont définis affiche le format en tant que jour de la semaine, du mois, de la date, de l'année et de l'heure des paramètres régionaux (am et pm). Par exemple, Thursday, August 13, 2020, 9:52:22 AM (jeudi 13 août 2020). Vous pouvez configurer cet horodatage en transmettant des options de formatage dans le paramètre timestampFormat
. Vous pouvez configurer l'horodatage en transmettant une chaîne de modèle de formatage de jetons, ou en transmettant un objet contenant des options Intl.DateTimeFormat
.
Formater la date et l'heure à l'aide de chaînes de modèle
timestampFormat: 'hh:mm:ss a'
règle l'horodatage sous la forme 09:30:14 pm.
Ces jetons sont sensibles à la casse. Par exemple, indiquer
yyyy
au lieu de YYYY
empêcherait l'affichage de l'année.
Composant | Jeton | Sortie |
---|---|---|
Jour du mois |
|
|
Jour de la semaine |
|
|
Mois |
|
|
Année |
|
|
Heure |
|
|
Minute |
|
|
Seconde |
|
|
Fraction de seconde |
|
|
AM/PM |
|
|
Fuseau horaire |
|
|
Formater l'horodatage avec des objets Intl.DateTimeFormat
Propriété | Valeurs |
---|---|
dateStyle |
'full' | 'long' | 'medium' | 'short' |
timeStyle |
'full' | 'long' | 'medium' | 'short' |
weekday |
|
day |
|
month |
|
year |
|
era |
|
hour |
|
minute |
|
second |
|
timeZoneName |
|
timeZone |
Fuseau horaire. Toutes les mises en oeuvre doivent reconnaître UTC . La valeur par défaut est le fuseau horaire par défaut de l'exécution. Les mises en oeuvre peuvent également reconnaître le nom des fuseaux horaires de la base de données IANA; par exemple, Asia/Shanghai , Asia/Kolkata , America/New_York .
|
hour12 |
Utilisation du système horaire sur 12 heures (ou sur 24 heures). Les valeurs sont true et false .
|
Personnaliser la jauge de notation des messages de rétroaction
Le message du composant de rétroaction vous permet de recueillir les commentaires des utilisateurs. Si vous utilisez la trousse SDK 21.10, la présentation par défaut du composant de rétroaction est un système de notation en étoile, une rangée horizontale d'étoiles qui sont mises en surbrillance lorsque les utilisateurs survolent et les sélectionnent. Vous pouvez modifier le comportement du composant à l'aide du composant Rétroaction de l'utilisateur, mais vous pouvez personnaliser l'apparence des composants à l'aide des paramètres de la trousse SDK.
rating
dans le champ icons
.
Conseil :
Pour une meilleure expérience utilisateur, utilisez une chaîne SVG solide sans couleur de remplissage, car elle permet une mise en surbrillance reconnaissable sur le pointage.new WebSDK({
URI: '<Server URI>',
//...,
icons: {
rating: '<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M15.994 3.006a5.7 5.7 0 00-3.795 1.707L12 4.916l-.199-.202a5.676 5.676 0 00-8.128 0c-2.231 2.275-2.231 5.953 0 8.228L12 21.428l8.326-8.486A5.873 5.873 0 0022 8.828a5.873 5.873 0 00-1.675-4.115A5.693 5.693 0 0016.262 3z"/></svg>' // A heart icon
}
})
La couleur de l'icône dans les deux états, non sélectionnée et pointée/sélectionnée, peut être configurée avec les champs de couleur ratingStar
et ratingStarFill
dans les paramètres de couleurs respectivement.new WebSDK({
URI: '<Server URI>',
//...,
icons: {
rating: '<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M15.994 3.006a5.7 5.7 0 00-3.795 1.707L12 4.916l-.199-.202a5.676 5.676 0 00-8.128 0c-2.231 2.275-2.231 5.953 0 8.228L12 21.428l8.326-8.486A5.873 5.873 0 0022 8.828a5.873 5.873 0 00-1.675-4.115A5.693 5.693 0 0016.262 3z"/></svg>' // A heart icon
},
colors: {
ratingStar: '#ffebee',
ratingStarFill: '#d32f2f'
}
})
Conseil :
Vous pouvez personnaliser les invites sorties par le composant User Feedback (Rétroaction d'utilisateur) en modifiant les ensembles de ressources liés à la rétroaction accessibles au moyen de la page Resource Bundle Configuration (Configuration de l'ensemble de ressources) ou en modifiant les cléssystemComponent_Feedback_
dans un fichier CSV d'ensemble de ressources exporté.
Envoyer le message initial lorsque l'historique de conversation est vide
initUserHiddenMessage
sont envoyés indépendamment de l'historique de conversation de l'utilisateur; ils sont envoyés la première fois que le widget de clavardage est ouvert pour chaque session. Pour envoyer le message initial lorsque l'historique de conversation est vide, vous devez lier un module d'écoute d'événement à la méthode Bots.on()
. Par exemple :Bots = new WebSDK(chatSettings);
var isHandled = false;
var message = ;
Bots.on(WebSDK.EVENT.WIDGET_OPENED, function() {
if (!isHandled && Bots.isConnected() && !Bots.getConversationHistory().messagesCount) {
Bots.sendMessage(message, { hidden: true });
isHandled = true;
}
});
Bots.on(WebSDK.EVENT.NETWORK, function(state) {
if (!isHandled && Bots.isConnected() && Bots.isChatOpened() && !Bots.getConversationHistory().messagesCount) {
Bots.sendMessage(message, { hidden: true });
isHandled = true;
}
});
Bots.connect();
Injection du service de synthèse de la parole
- Vous êtes souvent limité à des voix anormales et génériques qui peuvent miner votre image de marque.
- L'appareil d'un utilisateur peut ne pas prendre en charge les voix spécifiques au genre.
- Certains frameworks natifs (Cordova et ReactNative parmi eux) nécessitent des bibliothèques tierces pour les services TTS car leurs vues Web n'exposent pas les API de synthèse vocale natives requises par le SDK Web.
ttService
ou en appelant la méthode setTTSService
(décrite dans la documentation qui accompagne la trousse SDK). Vous pouvez utiliser un service fourni par Oracle, comme le service de reconnaissance de la parole pour Oracle Cloud Infrastructure (OCI), ou un service fourni par une tierce partie.
Du texte à la parole
- Indicateur de fonction :
enableBotAudioResponse: true
(La valeur par défaut estfalse
.) - Service TTS par défaut :
WebSDK.TTS.oracle
- Configuration de fonction :
ttsVoice
Vous pouvez enrichir l'expérience conversationnelle en permettant à la parole textuelle (TTS) de parler les réponses au fur et à mesure qu'elles atteignent le SDK. La trousse SDK fournit deux types de service TTS prêts à l'emploi : WebSDK.TTS.platform
et WebSDK.TTS.oracle
. Par défaut, la trousse SDK utilise le service de reconnaissance de la parole pour Oracle Cloud Infrastructure (OCI) pour obtenir des réponses plus réalistes. Ce service offre une expérience de marque facile car il offre plusieurs voix. Toutefois, vous pouvez utiliser le service TTS dépendant de la plate-forme, WebSDK.TTS.platform
, basé sur l'API Web Speech. Il utilise les API de synthèse vocale sur l'appareil de l'utilisateur pour parler les réponses.
ttsVoice
pour configurer la voix pour le TTS. Chaque élément du tableau doit être un objet comportant au moins un champ lang
ou name
. La trousse SDK recherche la disponibilité de chaque voix dans l'ordre dans lequel elles sont transmises dans le paramètre. Le premier match complet est défini comme la voix. Si aucune correspondance exacte n'est trouvée, la trousse SDK utilise la première correspondance en fonction de la valeur lang
uniquement. S'il n'y a toujours pas de correspondance, la trousse SDK utilise la voix par défaut.const settings = {
...,
enableBotAudioResponse: true,
ttsVoice: [{
lang: 'en-US',
name: 'Samantha'
}, {
lang: 'en-US',
name: 'Alex'
}, {
lang: 'en-UK'
}]
}
Pour personnaliser la façon dont les énoncés sont parlés, le tableau ttsVoice
permet de transmettre les propriétés facultatives pitch
, rate
et volume
dans chaque élément. Ces propriétés correspondent aux mêmes champs dans l'interface SpeechSynthesisUtterance.
- La propriété
pitch
peut avoir une valeur comprise entre 0 et 2. - La propriété
rate
peut avoir une valeur comprise entre 0,1 et 10. - La propriété
volume
peut avoir une valeur comprise entre 0 et 1.
const settings = {
// ....,
ttsVoice: [{
lang: 'en-us',
name: 'Alex',
pitch: 1.5,
rate: 2,
volume: 0.8
}, {
lang: 'en-us',
name: 'Victoria',
pitch: 1.2,
rate: 1.7,
}, {
lang: 'en',
name: 'Fiona',
pitch: 2,
}, {
lang: 'en'
}]
}
Interface du service de synthèse de la parole
SpeechSynthesisService
pour l'instance de service TTS que vous allez injecter./**
* Interface for the speech synthesis service; this can be used to define a service that can be
* injected into the SDK to perform speech synthesis on behalf of the skill or assistant
*/
interface SpeechSynthesisService {
/**
* Adds a phrase to the utterance queue to be spoken
* @param phrase string
*/
speak(phrase: string): void;
/**
* Cancels any ongoing speech synthesis utterance
*/
cancel(): void;
/**
* Returns a Promise that resolves into a list of SpeechSynthesisServiceVoice objects representing
* the available voices
*
* @return {*} {Promise<SpeechSynthesisServiceVoice[]>}
*/
getVoices(): Promise<SpeechSynthesisServiceVoice[]>;
/**
* Sets the voice to be used for speaking the utterances. It accepts an array of candidate voices
* sorted in their preference order, and sets one of them according to its matching criteria.
* It returns a Promise that gets resolved when the voice is set.
*
* @param {SpeechSynthesisServiceVoice[]} voice
* @return {*} {Promise<void>}
*/
setVoice(voices: SpeechSynthesisServiceVoice[]): Promise<void>;
/**
* Returns the voice that is used for speaking the utterances
*/
getVoice(): SpeechSynthesisServiceVoice;
/**
* Adds listener to SpeechSynthesisServiceEvent
*
* @param {SpeechSynthesisServiceEvent} event
* @param {Function} listener
*/
on(event: SpeechSynthesisServiceEvent, listener: () => void): void;
/**
* Removes listener(s) to SpeechSynthesisServiceEvent
*
* @param {SpeechSynthesisServiceEvent} event
* @param {Function} listener
*/
off(event: SpeechSynthesisServiceEvent, listener?: () => void): void;
}
/**
* Represents a voice that the SpeechSynthesisService supports. Every SpeechSynthesisServiceVoice has
* its own relative speech service including information about language, name and optionally more.
*/
interface SpeechSynthesisServiceVoice {
/**
* Returns a BCP 47 language tag indicating the language of the voice
*/
readonly lang: string;
/**
* Returns a human-readable name that represents the voice
*/
readonly name: string;
/**
* Pitch of the voice, can range between 0 and 2, default is 1
* Optional
*/
pitch?: number;
/**
* Speed at which the utterance is spoken at, can range between 0.1 and 10, default is 1
* Optional
*/
rate?: number;
/**
* Volume at which the utterance is spoken at, can range between 0 and 1, default is 1
* Optional
*/
volume?: number;
}
L'objet
SpeechSynthesisServiceEvent
comporte deux événements, TTSPlay
et TTSEnd
:const SpeechSynthesisServiceEvent = {
TTSPlay: 'tts:play',
TTSEnd: 'tts:end'
}
setTTSService(service)
.
Une fois le service TTS injecté, la trousse SDK traite les appels aux méthodes de service pour l'énoncé des messages. Cependant, vous pouvez appeler ces méthodes directement, ou vous pouvez utiliser les méthodes TTS exposées par le SDK pour n'importe quelle exigence. En mode sans tête, par exemple, vous pouvez appeler la méthode Bots.speakTTS(message)
pour transmettre un message tel qu'il est reçu de la compétence. La trousse SDK gère à la fois l'analyse du texte pouvant être énoncé à partir du message et la transmission de ce texte au service TTS afin qu'il puisse être énoncé.