Partager via


setBotAuthTokenProvider

Omnicanal pour Customer Service contient une suite de capacités qui étendent la puissance de Dynamics 365 Customer Service Enterprise pour permettre aux organisations de se connecter et d’interagir instantanément avec leurs clients sur les canaux de messagerie numérique. Une licence supplémentaire est requise pour accéder à Omnichannel pour Customer Service. Pour plus d’informations, voir les pages Vue d’ensemble de la tarification de Dynamics 365 Customer Service et Plan de tarification de Dynamics 365 Customer Service.

La fonction du fournisseur de jeton d’authentification du bot, lorsqu’elle est appelée avec une fonction de rappel en tant que paramètre, renvoie le botAuthUrlpour envoyer le jeton au bot et appelle la fonction de rappel pour définir la visibilité de la carte de connexion.

Syntaxe

Microsoft.Omnichannel.LiveChatWidget.SDK.setBotAuthTokenProvider(authTokenProvider);

Paramètres

Paramètre Type Descriptif
authTokenProvider Fonction Fonction qui, lorsqu’elle est appelée avec une fonction de rappel en paramètre, renvoie le botAuthUrl pour envoyer le jeton au bot et appelle la fonction de rappel pour définir la visibilité de la carte de connexion.

Valeur retournée

URL d’authentification du bot.

Example

Voici un exemple de code qui illustre comment vous pouvez transmettre un jeton d’authentification à un bot Azure ou Copilot Studio lors de l’authentification unique.

const signInIds = [];
window.Microsoft.Omnichannel.LiveChatWidget.SDK.setBotAuthTokenProvider(async (botTokenUrl, callback) => {
  const urlSearchParams = new URLSearchParams(botTokenUrl);
  const signInId = urlSearchParams.get("state");

  if (signInIds.includes(signInId)) { // Ignore authenticated sign-in cards
    callback({show: false});  // Hide card
    return;
  }

  signInIds.push(signInId);

  const authUrl = ""; // Customer's Authentication API
  const authResponse = await fetch(authUrl, method: "POST"});
  const {token} = authResponse;  // Customer's Auth Token

  const data = {
    token: "token"
  };

  const payload = {
    method: "POST",
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify(data)
  };

  try {
    const botAuthResponse = await fetch(botTokenUrl, payload); // Posts Auth Token to Bot directly
    
    // Sign in through Bot is successful
    if (botAuthResponse.status === 200) {
      signInIds.push(signInId); // Track authenticated sign-in card
      callback({show: false}); // Hide card
    }

    if (botAuthResponse.status === 404 || botAuthResponse.status == 202) {
      callback({show: false}); // Hide card
      return;
    } else {
      // Other condition handling    
    }

    return;
  } catch (error) {
  
  }

  callback({show: true});  // Show sign-in card by default
});

Référence de l’API JavaScript pour le SDK de chat en direct
Transmettre le jeton d’authentification au bot lors de l’authentification unique dans le chat en direct