Configuration de base
Voici les étapes de base à suivre pour configurer un canal Oracle Web.
Éléments nécessaires
- Un canal Oracle Web. La création du canal génère l'ID canal et la clé secrète dont vous avez besoin pour initialiser l'application de clavardage.
- L'URL du serveur de clavardage Oracle.
- La trousse SDK Oracle Web (située sous les trousses SDK client natives Oracle pour les environnements natifs OCI) téléchargée à partir de la page de téléchargement ODA et OMC d'Oracle Technology Network. Téléchargez ce fichier ZIP et extrayez-le sur votre système local. Ce fichier ZIP comprend un guide d'utilisation qui décrit les classes de la trousse SDK et un exemple d'application qui présente la plupart de ses fonctions.
Configurer le canal Oracle Web
-
L'authentification est effectuée à l'aide de jetons Web JSON (JWT). Le serveur dorsal du client génère le jeton JWT, qui est ensuite transmis à la trousse SDK Oracle Web. Ce jeton est utilisé pour chaque demande à un serveur vocal, de texte ou de fichiers joints ODA.NoteLorsque l'application Web doit se connecter à un serveur ODA, elle demande d'abord le jeton du serveur dorsal, puis l'ajoute à l'en-tête Authorization (Autorisation). Le serveur ODA valide le jeton, évalue les revendications, puis ouvre le connecteur logiciel ou rejette la connexion.
Pour protéger l'accès au canal, le jeton doit toujours être généré par un serveur distant. Il ne doit jamais être généré au sein du navigateur client.Conseil :
Cet article vous guide lors de l'exécution de la trousse SDK avec un canal authentifié. - Mode non authentifié : Utilisez ce mode lorsque le client ne peut pas générer des jetons JWT signés, lorsqu'aucun mécanisme d'authentification n'est en place ou lorsque le widget client est déjà sécurisé et visible pour les utilisateurs authentifiés.
- Sélectionnez Development (Développement), puis Channels (Canaux) dans le menu.
- Sélectionner des utilisateurs.
- Cliquez sur Add Channel (Ajouter un canal), puis sélectionnez Oracle Web comme type de canal.
- Complétez la boîte de dialogue :
- Entrez le nom du canal.
- Pour les connexions authentiques :
- Activez l'option Client Authentication Enabled (Authentification de client activée) pour déterminer si la trousse SDK se connecte au canal prenant en charge l'authentification de client.
- Le canal communiquera uniquement avec les sites des domaines que vous ajoutez dans une liste séparée par des virgules. Par exemple,
*.corp.example.com
,*.hdr.example.com
. L'entrée d'un seul astérisque (*) permet un accès illimité au canal depuis n'importe quel domaine. En règle générale, vous n'entrez qu'un seul astérisque lors du développement. En production, vous ajoutez une liste d'autorisation de domaines. - Dans le champ Max. Token Expiration (Minutes) (Expiration du jeton max. (minutes)), définissez la durée maximale du jeton JWT.
- Pour les connexions non authentifiées :
- Désactivez l'option Client Authentication Enable (Authentification de client activée).
- Entrez une liste séparée par des virgules de domaines pouvant accéder au canal. Si les domaines de cette liste d'autorisation incluent des astérisques (
*.hdr.example.com
) ou si elle n'est pas complètement connue, envisagez plutôt une connexion authentifiée.
- Définissez le délai d'expiration de la session.
- Cliquez sur Create (Créer). Oracle Digital Assistant génère l'ID canal et la clé secrète dont vous avez besoin pour initialiser la trousse SDK. Gardez-les à portée de main, car vous en aurez besoin lors de la configuration de la page HTML pour héberger le widget de clavardage.
- Acheminez le canal vers votre compétence ou votre assistant numérique.
- Sélectionnez Channel Enabled (Canal activé).
Tutoriel : Sécuriser le clavardage de la trousse SDK Oracle Web
Vous pouvez vous exercer à la sécurisation du widget de clavardage Web en suivant ce tutoriel : Sécuriser le clavardage de la trousse SDK Oracle Web.
Installation de la SDK
- Dans le fichier ZIP extrait de la trousse SDK Oracle Web téléchargée, localisez le fichier
web-sdk.js
(situé dans le répertoirenative-client-sdk-js
). - Enregistrez
web-sdk.js
(situé dans le répertoirenative-client-sdk-js
du fichier ZIP extrait) dans le répertoire du projet. Notez l'emplacement du fichier, car vous en aurez besoin pour définir la propriété<WebSDK URL>
dans le code de la balise<script>
. - Créez un fichier JavaScript avec la fonction suivante qui initialise la trousse SDK. Nous appelons ce fichier
settings.js
dans l'exemple fourni avec la trousse SDK.// settings.js const chatSettings = { URI: '<Server URI>', channelId: '<Channel ID>', userId: '<User ID>' }; 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'; } setTimeout(function() { const Bots = new WebSDK(chatSettings); // Initiate library with configuration let isFirstConnection = true; Bots.on(WebSDK.EVENT.WIDGET_OPENED, async () => { if (isFirstConnection) { try { await Bots.connect(); // Connect to server console.log('Connection Successful'); } catch (error) { console.log('Connection failed'); console.log(error); } isFirstConnection = false; } }); window[name] = Bots; }, 0); }
- Définissez les propriétés suivantes :
URI
- Nom d'hôte dans l'URL de l'instance Oracle Digital Assistant. Seul le premier chemin (/
) doit être transmis ici. Vous pouvez transmettre cette URL avec ou sans le protocole (https://
).channelId
: ID canal généré lors de la création du canal Oracle Web. Cette propriété est obligatoire car elle connecte le widget à la compétence sous-jacente.userId
: Un ID utilisateur. Lorsque vous fournissez cette valeur, la base d'utilisateurs de cette compétence peut être suivie par les mesures d'utilisateur uniques dans les données clés. Lorsque vous ne fournissez pas d'ID utilisateur, mais que la trousse SDK en génère un à chaque nouvelle session. Cette propriété est facultative pour les connexions non authentifiées.
- Dans votre page HTML, référencez les emplacements du fichier JS (
setting.js
dans l'exemple suivant) de la bibliothèqueweb-sdk.js
et de l'espace de noms de la trousse SDK Web, qui est généralementBots
. Utilisez cet espace de noms pour appeler les API publiques. Par exemple, si vous définissez l'espace de noms surBots
, vous appelez les API comme suit :Bots.<API>()
. Pour en savoir plus sur les divers fonctions et événements, consultez le guide de l'utilisateur (disponible sous forme de fichier Lisez-moi et de document HTML) fourni dans le fichier ZIP de la trousse SDK Oracle Web.<script src="scripts/settings.js"></script> <script src="scripts/web-sdk.js" onload="initSdk('Bots')"></script>
Charger la trousse SDK à partir d'un réseau de diffusion de contenu
web-sdk.js
vous-même.
Cette approche simplifie le déploiement en déchargeant l'hébergement du fichier de la trousse SDK Web sur un réseau de diffusion de contenu tout en gardant le contrôle sur vos configurations de clavardage spécifiques au moyen du fichier
settings.js
.
web-sdk.js
.
- Créez votre fichier
settings.js
: Ce fichier contiendra votre configuration de trousse SDK et la fonctioninitSDK
. Le but de ce fichier et son contenu sont les mêmes que ceux décrits dans la section HTML Script Tag. Vous hébergez toujours ce fichiersettings.js
vous-même. - Liez settings.js et le fichier
web-sdk.js
hébergé par le réseau de diffusion de contenu dans votre fichier HTML : Dans la section<head>
de votre page HTML, incluez une balise de script pour votre fichiersettings.js
hébergé localement et une autre pour la trousse SDK Web, pointant l'attributsrc
vers l'URL du réseau de diffusion de contenu.<head> <!-- 1. Your custom settings --> <script src="settings.js" defer></script> <!-- 2. Web SDK from CDN --> <script src="https://static.oracle.com/cdn/oda/<VERSION>/web-sdk.js" onload="initSDK('<WebSDK namespace>')" defer></script> <!-- Option A: Example with a specific version <script src="https://static.oracle.com/cdn/oda/25.4.0/web-sdk.js" onload="initSDK('Bots')" defer></script> Option B: Latest Stable Version (Convenient for always getting updates) <script src="https://static.oracle.com/cdn/oda/latest/web-sdk.js" onload="initSDK('Bots')" defer></script> --> <!-- Important Notes for the CDN script tag (choose one option from above): - Replace 'https://static.oracle.com/cdn/oda/<VERSION>/web-sdk.js' with the actual CDN URL provided for the Oracle Web SDK. - For Option A: Replace '<VERSION>' in the URL with the specific SDK version number you need (e.g., '25.4.0'). - For Option B: Using 'latest' instead of a specific version number will always load the most recent stable release. - See the 'Oracle CDN URLs' section below for a list of available versions and more details. - Replace '<WebSDK namespace>' (e.g., 'Bots' in the examples) with your chosen name for the SDK instance. --> </head>
URL du réseau de diffusion de contenu
- Utilisation du marqueur
latest
:https://static.oracle.com/cdn/oda/latest/web-sdk.js
Cette URL pointe toujours vers la version stable la plus récente du SDK Web. Il est pratique pour le développement ou si vous souhaitez que votre application reçoive automatiquement les dernières fonctionnalités et correctifs dès leur publication.Note
Soyez prudent dans les environnements de production. Bien que cela soit pratique, les mises à jour automatiques peuvent apporter des modifications. Donc, pour les environnements de production, envisagez d'utiliser une version spécifique à la place pour assurer la stabilité et le contrôle du processus de mise à jour. - Utilisation d'une version spécifique :
https://static.oracle.com/cdn/oda/<VERSION>/web-sdk.js
Note
Utilisez une URL spécifique pour les environnements de production.Cette approche vous permet d'utiliser une version fixe et spécifique du SDK Web, qui est recommandée pour les environnements de production. Il vous donne le contrôle sur le moment où les mises à jour sont appliquées et permet des tests approfondis.
Pour définir une version spécifique, remplacez<VERSION>
par le numéro de version souhaité (par exemple, 25.4.0). Les versions stables actuellement disponibles sont les suivantes :- Version 25.04 : https://static.oracle.com/cdn/oda/25.4.0/web-sdk.js
- Version 25.02 : https://static.oracle.com/cdn/oda/25.2.0/web-sdk.js
- Version 24.12 : https://static.oracle.com/cdn/oda/24.12.0/web-sdk.js
- Version 24.10 : https://static.oracle.com/cdn/oda/24.10.0/web-sdk.js
- Version 24.08 : https://static.oracle.com/cdn/oda/24.8.0/web-sdk.js
- Version 24.06 : https://static.oracle.com/cdn/oda/24.6.0/web-sdk.js
- Version 24.04 : https://static.oracle.com/cdn/oda/24.4.0/web-sdk.js
- Version 24.02 : https://static.oracle.com/cdn/oda/24.2.0/web-sdk.js
Conseil :
Pour obtenir la liste la plus récente des versions de réseau de diffusion de contenu disponibles et des informations détaillées sur les versions, consultez toujours les notes de version de la trousse SDK les plus récentes ou la documentation officielle sur Oracle Digital Assistant.
Importer la bibliothèque à l'aide de l'API de définition de module asynchrone
requirejs.config({
paths: {
WebSDK: '<path of the web-sdk>' // replace this with actual library path
} });
define(['WebSDK'], function(WebSDK)
{ const settings = {
URI: '<Server URI>',
channelId: '<Channel ID>',
userId: '<User ID>'
};
Bots = new WebSDK(settings);
Bots.connect();
});
Importer la bibliothèque dynamiquement avec JavaScript
function fetchSDK(src, onloadFunction, name) {
const script = document.createElement('script');
script.type = 'application/javascript';
script.async = true; // load the script asynchronously
script.defer = true; // fallback support for browsers that does not support async
script.onload = function() {
onloadFunction(name);
};
document.head.appendChild(script);
script.src = src;
}
fetchSDK('', initSDK, '');
Configurer l'authentification de client
En plus d'utiliser des listes de domaines autorisés, l'authentification de client est effectuée à l'aide de jetons JWT signés.
La génération et la signature du jeton doivent être effectuées par le client dans le serveur dorsal (de préférence après l'authentification utilisateur/client) qui est capable de maintenir en sécurité keyId
et keySecret
.
Lorsque la trousse SDK a besoin d'établir une connexion avec le serveur ODA, elle demande d'abord un jeton JWT du client, puis l'envoie avec la demande de connexion. Le serveur ODA valide la signature du jeton et obtient le jeu de revendications des données utiles JWT pour vérifier le jeton afin d'établir la connexion.
clientAuthEnabled: true
doit être transmis dans les paramètres de la trousse SDK, et une fonction générateur de jetons doit être transmise comme deuxième paramètre. La fonction doit retourner une promesse, qui est résolue en retour d'une chaîne de jetons JWT signés.async function generateToken() {
const token = await fetch('https://yourbackend.com/endpointToGenerateJWTToken');
return token;
}
Bots.init({
URI: 'oda-instance.com',
clientAuthEnabled: true
}, generateToken);
Jeton JWT
iat
- date d'émissionexp
- date d'expirationchannelId
- ID canaluserId
- ID utilisateur
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1NzY3NDcyMDUsImV4cCI6MTU3Njc1MTExNywiY2hhbm5lbElkIjoiNDkyMDU5NWMtZWM3OS00NjE3LWFmOWYtNTk1MGQ2MDNmOGJiIiwidXNlcklkIjoiSm9obiIsImp0aSI6ImQzMjFjZDA2LTNhYTYtNGZlZS05NTBlLTYzZGNiNGVjODJhZCJ9.lwomlrI6XYR4nPQk0cIvyU_YMf4gYvfVpUiBjYihbUQ
- En-tête :
{ "typ": "JWT", "alg": "HS256" }
- Données utiles :
{ "iat": 1576747205, "exp": 1576748406, "channelId": "4920595c-ec79-4617-af9f-5950d603f8bb", "userId": "John" }