een bot Verbinding maken naar Directe lijn

In dit artikel wordt beschreven hoe u een bot verbindt met het Direct Line-kanaal . Gebruik dit kanaal om te communiceren met een bot via uw clienttoepassing.

Notitie

Direct Line is een standaardkanaal via HTTPS-protocol om communicatie tussen een clienttoepassing en een bot mogelijk te maken. Als u in plaats daarvan netwerkisolatie nodig hebt, gebruikt u de Direct Line App Service-extensie via WebSockets.

Vereisten

  • Een Azure-account. Als u nog geen account hebt, maakt u een gratis account voordat u begint.
  • Een bestaande bot die is gepubliceerd naar Azure.

Het kanaal Direct Line toevoegen

Het eerste wat u moet doen, is door het Direct Line-kanaal toe te voegen aan uw bot.

  1. Ga naar de Azure-portal.
  2. Ga naar uw Azure Bot-resource. Selecteer kanalen onder Bot Instellingen.
  3. Selecteer Direct Line in de lijst met beschikbare kanalen.

Uw bot is nu geconfigureerd voor het gebruik van Direct Line met behulp van de standaardsite.

U kunt ook een nieuwe site toevoegen in plaats van de standaardsite te gebruiken. Selecteer de knop Nieuwe site op de pagina Direct Line-kanaal om een nieuwe site te maken. Direct Line new site button in Azure portal

Geheime sleutels beheren

Wanneer u het Direct-kanaal toevoegt, genereert bot framework geheime sleutels. Uw clienttoepassing gebruikt deze sleutels voor het verifiëren van de Direct Line-API-aanvragen die worden uitgevoerd om te communiceren met een bot. Zie Verificatie voor meer informatie.

  1. Als u het directe lijngeheim van een site in tekst zonder opmaak wilt weergeven, gaat u naar de pagina Direct Line-kanaal .

  2. Selecteer het tabblad Directe lijn en vervolgens de site waarvoor u de sleutel wilt ophalen, zoals Default_Site. Azure opent een deelvenster Site configureren .

  3. Selecteer onder Geheime toetsen het oogpictogram naast de bijbehorende sleutel.

    Show Direct Line keys

  4. Kopieer en sla de sleutel veilig op. Gebruik de sleutel om de Direct Line-API-aanvragen te verifiëren die uw clienttoepassing ondervindt om te communiceren met een bot.

    Notitie

    Geheimen mogen niet worden weergegeven of ingesloten in clienttoepassingen. Zie de volgende stap.

  5. De best practice is om de Direct Line-API te gebruiken om de sleutel voor een token uit te wisselen. De clienttoepassing gebruikt vervolgens het token om de aanvragen binnen het bereik van één gesprek te verifiëren.

Instellingen configureren

Uw site-instellingen configureren:

  1. Selecteer op de pagina Direct Line-kanaal de site die u wilt configureren in de lijst Sites . Het deelvenster Site configureren wordt geopend, zoals hieronder wordt weergegeven: Configure site pane

  2. Selecteer de Direct Line-protocolversie die door uw clienttoepassing wordt gebruikt om te communiceren met een bot.

    Fooi

    Als u een nieuwe verbinding maakt tussen uw clienttoepassing en bot, gebruikt u Direct Line API 3.0.

  3. Wanneer u klaar bent, selecteert u Toepassen om de siteconfiguratie op te slaan. Herhaal dit proces, beginnend met een nieuwe site, voor elke clienttoepassing die u wilt verbinden met uw bot.

Verbeterde verificatie configureren

Een van de beschikbare siteconfiguraties is verbeterde verificatieopties, waarmee u beveiligingsrisico's kunt beperken bij het maken van verbinding met een bot (bijvoorbeeld met behulp van het Webchat-beheer). Zie Verbeterde verificatie via Direct Line voor meer informatie.

Verbeterde verificatie toevoegen:

  1. Schakel De verificatieopties verbeteren in. Een bericht met de tekst 'U moet ten minste één vertrouwde oorsprong hebben', wordt weergegeven met een koppeling Een vertrouwde oorsprong toevoegen. Als u de verbeterde verificatie inschakelt, moet u ten minste één vertrouwde oorsprong opgeven.

    Een vertrouwde oorsprong is een domein dat door het systeem wordt gebruikt om gebruikers te verifiëren. In dit geval gebruikt Direct Line het domein om een token te genereren.

    • Als u vertrouwde origins configureert als onderdeel van de pagina configuratiegebruikersinterface, worden deze instellingen altijd gebruikt als de enige instelling voor het genereren van een token. Het verzenden van aanvullende vertrouwde origins (of het instellen van vertrouwde origins op geen) wanneer u een token genereert of een gesprek start, wordt genegeerd (ze worden niet toegevoegd aan de lijst of kruisvalideerd).
    • Als u verbeterde verificatie niet hebt ingeschakeld, worden alle oorspronkelijke URL's die u verzendt als onderdeel van de API-aanroepen gebruikt. Add trusted origin
  2. Nadat u een VERTROUWDE domein-URL hebt toegevoegd, selecteert u Toepassen.

Voorbeeldbot van Direct Line

U kunt een .NET-voorbeeld downloaden vanaf deze locatie: Direct Line Bot Sample.

Het voorbeeld bevat twee projecten:

  • DirectLineBot. Er wordt een bot gemaakt om verbinding te maken via een Direct Line-kanaal.
  • DirectLineClient. Dit is een consoletoepassing die via het Direct Line-kanaal met de vorige bot praat.

Direct Line-API

  • Referenties voor de Direct Line-API moeten worden verkregen via de Registratie van De Azure-bot en staan alleen toe dat de aanroeper verbinding maakt met de bot waarvoor ze zijn gegenereerd. Werk in het botproject het appsettings.json bestand bij met deze waarden.

    {
    "MicrosoftAppId": "",
    "MicrosoftAppPassword": ""
    }
    
  • Schakel in Azure Portal Direct Line in de lijst met kanalen in en configureer vervolgens het geheim van de directe lijn. Zorg ervoor dat het selectievakje voor versie 3.0 is ingeschakeld. Werk in het consoleclientproject het App.config bestand bij met de geheime sleutel Direct Line en de bot-handle (Bot ID).

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

Gebruikersberichten worden verzonden naar de bot met behulp van de methode Direct Line Client Conversations.PostActivityAsync met behulp van de ConversationId eerder gegenereerde methode.

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