setBotAuthTokenProvider

Multicanle para Customer Service ofrece un conxunto de capacidades que amplían o poder de Dynamics 365 Customer Service Enterprise para permitir ás organizacións conectarse instantáneamente e interactuar cos seus clientes a través de canles como o chat en directo e SMS. Requírese unha licenza adicional para acceder á Multicanle para Customer Service. Para obter máis información, consulte as páxinas Visión xeral dos prezos de Dynamics 365 Customer Service e Plan de prezos de Dynamics 365 Customer Service .

A función do provedor de tokens de autenticación do bot, cando se chama cunha función de chamada como parámetro, devolve o botAuthUrlpara enviar o token ao bot e invoca a función de chamada para establecer a visibilidade da tarxeta de inicio de sesión.

Sintaxe

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

Parámetros

Parámetro Tipo Descripción
AuthTokenProvider Función Función que cando se invoca cunha función de chamada como parámetro, devolve o botAuthUrl para enviar o token ao bot e invoca a función de chamada para establecer a visibilidade da tarxeta de inicio de sesión.

Valor de devolución

URL de autenticación do bot.

Exemplo

Aquí tes un exemplo de código que ilustra como podes pasar un token de autenticación a un bot de Azure ou Copilot Studio durante o inicio de sesión único.

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",
    type: "TokenExchangeRequest"
  };

  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
});

Referencia da API JavaScript para o SDK de chat en directo
Pasar o token de autenticación ao bot durante o inicio de sesión único no chat en directo