Conecte um bot à linha direta

Este artigo descreve como conectar um bot ao canal de linha direta. Use este canal para permitir que o aplicativo cliente se comunique com um bot.

Observação

A linha direta é um canal padrão sobre o protocolo HTTPS para permitir a comunicação entre um aplicativo cliente e um bot. Se você precisar de isolamento de rede em vez disso, use a extensão do serviço de aplicativo de linha direta sobre o protocolo WebSocket.

Adicionar o canal de linha direta

A primeira coisa que você deve fazer é adicionar o canal de linha direta ao bot.

  1. No navegador, navegue até o portal do Azure.

  2. No painel esquerdo, clique no item canais .

  3. No painel direito, em Adicionar um canal em destaque, clique no ícone de linha direta (marcado em vermelho na imagem abaixo).

    Adicionar canal de linha direta

  4. A página Configurar linha direta é exibida. Clique no botão concluído na parte inferior da página. Isso adiciona o canal de linha direto ao bot, conforme mostrado na imagem abaixo.

    Canal de linha direta adicionado

Adicionar novo site

  1. em Conexão para canais, clique no link editar pela linha direta.

  2. Em Configurar linha direta, clique em Adicionar novo site e insira um nome para o seu site. Isso representa o aplicativo cliente que você deseja conectar ao bot.

    Adicionar linha direta de site

  3. Clique em Concluído.

Gerenciar chaves secretas

Quando você adiciona o canal direto, a estrutura de bot gera chaves secretas. O aplicativo cliente usa essas chaves para autenticar as solicitações da API de linha direta que ele emite para se comunicar com um bot. Para obter mais informações, consulte Autenticação.

  1. Em Configurar linha direta, para exibir uma chave em texto sem formatação, clique em Mostrar para a chave correspondente.

    Mostrar chave de linha direta

  2. Copie e armazene a chave com segurança. Use a chave para autenticar as solicitações da API de linha direta que o aplicativo cliente emite para se comunicar com um bot.

    Copie a chave de linha direta

    Observação

    Os segredos não devem ser expostos ou inseridos em aplicativos cliente. Consulte a próxima etapa.

  3. A prática recomendada é usar a API de linha direta para trocar a chave por um token. O aplicativo cliente usará o token para autenticar suas solicitações dentro do escopo de uma única conversa.

Definir configurações

  1. Selecione a versão do protocolo de linha direta que seu aplicativo cliente usará para se comunicar com um bot.

    Dica

    Se você estiver criando uma nova conexão entre seu aplicativo cliente e o bot, use o Direct Line API 3.0.

  2. Quando terminar, clique em Concluído para salvar a configuração do site. Você pode repetir esse processo, começando com Adicionar novo site, para cada aplicativo cliente que você deseja conectar ao seu bot.

Configurar a autenticação avançada

Quando você habilita a Autenticação avançada, é solicitado que você selecione uma lista de URLs de origem confiáveis, também conhecidas como origens confiáveis ou domínios confiáveis, para a geração do token de autenticação. Se você habilitar a autenticação avançada, deverá especificar pelo menos uma origem confiável.

Adicionar origens confiáveis

Um domínio confiável é um domínio no qual o sistema confia para autenticar usuários. Em nosso caso, é um domínio em que a linha direta pode confiar para a geração de um token.

  • Se você configurar origens confiáveis como parte da página da interface do usuário de configuração, elas serão sempre usadas como o único conjunto para a geração de um token. Enviar nenhuma ou origens confiáveis adicionais ao gerar um token ou iniciar uma conversa, elas serão ignoradas (ou seja, elas não serão acrescentadas à lista ou validadas em cruz).

  • Se você não habilitou a autenticação avançada, qualquer URL de origem enviada como parte das chamadas à API será usada.

A autenticação avançada permite que você reduza os riscos de segurança ao se conectar a um bot (usando o controle de chat da Web, por exemplo). Para obter mais informações, consulte Autenticação avançada de linha direta.

Exemplo

Você pode baixar um exemplo do .NET deste local: exemplo de bot de linha direta.

O exemplo contém dois projetos:

  • DirectLineBot. Ele cria um bot para se conectar por meio de um canal de linha direta.
  • DirectLineClient. Este é um aplicativo de console que se comunica com o bot anterior por meio do canal de linha direta.

Direct Line API

  • As credenciais para a API de linha direta devem ser obtidas no registro de bot do Azure e só permitirão que o chamador se conecte ao bot para o qual elas foram geradas. No projeto bot, atualize o appsettings.json arquivo com esses valores.

    {
    "MicrosoftAppId": "",
    "MicrosoftAppPassword": ""
    }
    
  • No portal do Azure, habilite a linha direta na lista de canais e, em seguida, configure o segredo de linha direta. Verifique se a caixa de seleção da versão 3,0 está marcada. No projeto de cliente do console, atualize o App.config arquivo com a chave secreta de linha direta e o identificador de bot (ID do bot).

    <appSettings>
        <add key="DirectLineSecret" value="YourBotDirectLineSecret" />
        <add key="BotId" value="YourBotHandle" />
    </appSettings>
    

As mensagens do usuário são enviadas para o bot usando o método de cliente de linha direta Conversations.PostActivityAsync usando o ConversationId gerado anteriormente.

while (true)
{
    string input = Console.ReadLine().Trim();

    if (input.ToLower() == "exit")
    {
        break;
    }
    else
    {
        if (input.Length > 0)
        {
            Activity userMessage = new Activity
            {
                From = new ChannelAccount(fromUser),
                Text = input,
                Type = ActivityTypes.Message
            };

            await client.Conversations.PostActivityAsync(conversation.ConversationId, userMessage);
        }
    }
}