Megosztás a következőn keresztül:


robot Csatlakozás Direct Line-ba

Ez a cikk azt ismerteti, hogyan csatlakoztathat robotot a Direct Line csatornához. Ezen a csatornán kommunikálhat egy robottal az ügyfélalkalmazáson keresztül.

Megjegyzés:

A Direct Line egy szabványos, HTTPS protokollon keresztüli csatorna, amely lehetővé teszi az ügyfélalkalmazás és a robot közötti kommunikációt. Ha inkább hálózatelkülönítést szeretne, használja a Direct Line App Service-bővítményt WebSocketsen keresztül.

Előfeltételek

  • Egy Azure-fiók. Ha még nem rendelkezik ilyen fiókkal, a kezdés előtt hozzon létre egy ingyenes fiókot .
  • Az Azure-ban közzétett meglévő robot.

A Közvetlen vonal csatorna hozzáadása

Első lépésként hozzá kell adnia a Direct Line csatornát a robothoz.

  1. Nyissa meg az Azure Portalt.
  2. Nyissa meg az Azure Bot-erőforrást. A Robot Gépház területen válassza a Csatornák lehetőséget.
  3. Válassza a Közvetlen vonal lehetőséget az elérhető csatornák listájából.

A robot most már úgy van konfigurálva, hogy a Direct Line-t használja az alapértelmezett webhely használatával.

Másik lehetőségként hozzáadhat egy új webhelyet az alapértelmezett hely helyett. Új webhely létrehozásához kattintson az Új webhely gombra a Direct Line csatorna lapján. Direct Line new site button in Azure portal

Titkos kulcsok kezelése

A Közvetlen csatorna hozzáadásakor a Bot Framework titkos kulcsokat hoz létre. Az ügyfélalkalmazás ezekkel a kulcsokkal hitelesíti a Direct Line API-kéréseket, amelyek a robottal való kommunikáció során problémát tapasztalnak. További információért lásd: Hitelesítés.

  1. Ha egy webhely Közvetlen vonal titkos kódját egyszerű szövegben szeretné megtekinteni, lépjen a Közvetlen vonal csatorna lapjára.

  2. Válassza a Közvetlen vonal fület, majd a kulcsot lekérni kívánt webhelyet, például Default_Site. Az Azure megnyitja a Webhely konfigurálása panelt.

  3. A Titkos kulcsok területen válassza a szem ikont a megfelelő kulcs mellett.

    Show Direct Line keys

  4. Másolja és biztonságosan tárolja a kulcsot. A kulccsal hitelesítheti azokat a Direct Line API-kéréseket, amelyeket az ügyfélalkalmazás problémákat tapasztal a robottal való kommunikációhoz.

    Megjegyzés:

    A titkos kulcsokat nem szabad felfedni vagy beágyazni az ügyfélalkalmazásokba. Lásd a következő lépést.

  5. Az ajánlott eljárás a Direct Line API használata a kulcs jogkivonatra való cseréjéhez. Az ügyfélalkalmazás ezután a jogkivonat használatával hitelesíti a kéréseit egyetlen beszélgetés hatókörén belül.

Beállítások konfigurálása

A webhely beállításainak konfigurálása:

  1. A Közvetlen vonal csatorna lapján válassza ki a konfigurálni kívánt webhelyet a Webhelyek listából. Ekkor megnyílik a Webhely konfigurálása ablaktábla, amely alább látható: Configure site pane

  2. Válassza ki azt a Direct Line protokollverziót, amellyel az ügyfélalkalmazás kommunikálni fog egy robottal.

    Tipp.

    Ha új kapcsolatot hoz létre az ügyfélalkalmazás és a robot között, használja a Direct Line API 3.0-t.

  3. Ha végzett, a webhelykonfiguráció mentéséhez válassza az Alkalmaz lehetőséget. Ismételje meg ezt a folyamatot egy új webhelytől kezdve minden olyan ügyfélalkalmazásnál, amelyhez csatlakozni szeretne a robothoz.

Továbbfejlesztett hitelesítés konfigurálása

Az egyik elérhető helykonfiguráció a Továbbfejlesztett hitelesítési lehetőségek, amelyek segítenek csökkenteni a robothoz való csatlakozás biztonsági kockázatait (például a webchat vezérlő használatával). További információ: Direct Line továbbfejlesztett hitelesítés.

Továbbfejlesztett hitelesítés hozzáadása:

  1. Engedélyezze a hitelesítési beállítások továbbfejlesztését. A "Legalább egy megbízható forrással kell rendelkeznie" üzenet jelenik meg egy Megbízható forrás hozzáadása hivatkozással. Ha engedélyezi a továbbfejlesztett hitelesítést, meg kell adnia legalább egy megbízható forrást.

    A megbízható forrás a rendszer által a felhasználók hitelesítésére használt tartomány. Ebben az esetben a Direct Line a tartomány használatával hoz létre jogkivonatot.

    • Ha a konfigurációs felhasználói felület oldalának részeként konfigurálja a megbízható forrásokat, a rendszer mindig ezeket a beállításokat használja csak a jogkivonatok létrehozásához. A jogkivonat létrehozásakor vagy a beszélgetés indításakor a rendszer figyelmen kívül hagyja a további megbízható forrásokat (vagy a megbízható forrásokat egyiknek sem állítja be) (a rendszer nem fűzi hozzá őket a listához vagy keresztellenőrzéshez).
    • Ha nem engedélyezte a továbbfejlesztett hitelesítést, a rendszer az API-hívások részeként küldött forrás URL-címet fogja használni. Add trusted origin
  2. Megbízható tartomány URL-címének hozzáadása után válassza az Alkalmaz lehetőséget.

Közvetlen vonal példarobotja

A .NET-példát innen töltheti le: Direct Line Bot Sample.

A példa két projektet tartalmaz:

  • DirectLineBot. Létrehoz egy robotot, amely direct line csatornán keresztül csatlakozik.
  • DirectLineClient. Ez egy konzolalkalmazás, amely a Direct Line csatornán keresztül beszél az előző robottal.

Direct Line API

  • A Direct Line API hitelesítő adatait az Azure Bot-regisztrációból kell beszerezni, és csak azt engedélyezi a hívónak, hogy csatlakozzon ahhoz a robothoz, amelyhez létrehozták őket. A robotprojektben frissítse a fájlt ezekkel az appsettings.json értékekkel.

    {
    "MicrosoftAppId": "",
    "MicrosoftAppPassword": ""
    }
    
  • Az Azure Portalon engedélyezze a Direct Line-t a csatornák listájában, majd konfigurálja a Direct Line titkos kódját. Győződjön meg arról, hogy a 3.0-s verzió jelölőnégyzete be van jelölve. A konzolügyfél-projektben frissítse a App.config fájlt a Direct Line titkos kulcsával és a robotfogóponttal (Bot ID).

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

A felhasználói üzeneteket a rendszer a korábban létrehozott Direct Line Client Conversations.PostActivityAsync metódussal küldi el a robotnak ConversationId .

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