Udgiv et Helpdesk-medarbejder til mobilapps eller brugerdefinerede apps
Du kan knytte din Helpdesk-medarbejder til en tilpasset app, så appens brugere kan interagere med Helpdesk-medarbejder direkte fra din app.
I de fleste tilfælde er din brugerdefinerede app en app til en mobilenhed og er enten en webbaseret app eller en oprindelig app eller kort til andre tjenester, som din virksomhed har brug for.
Der er forskellige procedurer for at oprette forbindelse til mobilappen, afhængigt af om appen er en webbaseret app eller en oprindelig app.
Det er relativt ligetil at forbinde din Helpdesk-medarbejder til en webbaseret app, da det involverer kopiering af en kode kodestykke til din app. Både webbaserede apps og native eller brugerdefinerede apps kræver dog stadig betydelig udviklerekspertise for at integrere Helpdesk-medarbejder fuldt ud i din app. Begge procedurer er beskrevet i denne artikel.
Forudsætninger
- .NET Core SDK version 2.1.
- Nuget-pakken Microsoft.Bot.Connector.DirectLine.
- Et Helpdesk-medarbejder oprettet, hvor Copilot Studio du vil oprette forbindelse til din app.
Forbind din Helpdesk-medarbejder med en webbaseret app
Vælg Kanaler i navigationsmenuen i Copilot Studio.
Vælg feltet Mobilapp for at åbne konfigurationsvinduet.
Kopiér koden under sektionen Webbaserede apps, og giv den til app-udviklerne, så de kan tilføje den til din webbaserede app.
Forbind din Helpdesk-medarbejder med en indbygget eller brugerdefineret app
Tip
Dette afsnit indeholder en beskrivelse af, hvordan du forbinder til en mobilapp, men den samme proces kan dog også anvendes til brugerdefinerede eller oprindelige apps, f.eks. IoT-apps (Tingenes internet).
Hvis dit mål er at oprette forbindelse til Azure Bot Service-kanaler, kan dine udviklere ud over at følge instruktionerne her få mere at vide under Publicere en Helpdesk-medarbejder til Azure Bot Service-kanaler.
Vigtige oplysninger
Instruktionerne i dette afsnit kræver udvikling af software fra dig eller dine udviklere. Det er udviklet til erfarne IT-medarbejdere, såsom IT-administratorer eller udviklere, der har en solid forståelse for udviklerværktøjer, værktøjer og IDE'er.
Kodeeksempler
Kodestykker, der bruges i dette dokument, er fra:
Referencer
Instruktionerne i dette dokument refererer til følgende kildemateriale:
- Bot Framework Direct Line API
- Direct Line-godkendelse
- Kontekstvariabler, der er tilgængelige i forbindelse med aflevering
- Microsoft Bot Framework-aktivitet
Hent dine Copilot Studio Helpdesk-medarbejder parametre
Hvis du vil oprette forbindelse til det Helpdesk-medarbejder, du har bygget, skal du hente navnet og tokenet slutpunkt på dit Helpdesk-medarbejder for at identificere det.
Gå Copilot Studio til siden Oversigt for din Helpdesk-medarbejder, og kopier navnet på din Helpdesk-medarbejder.
Vælg Kanaler>Mobilapp.
På siden Mobilapp skal du ud for Token-slutpunkt vælge Kopiér. Du skal bruge dette slutpunkt til trinnet Hent Direct Line-token.
Hent Direct Line-token
Hvis du vil starte en samtale med din Helpdesk-medarbejder, skal du bruge et Direct Line token. Dette token kan angives ved at anmode den bruger, der slutpunkt GET, på Copilot Studio skærmen. Dette token skal derefter bruges som header for efterfølgende kald til directline-API'en.
Eksempel:
GET <BOT TOKEN ENDPOINT>
Hvis anmodningen lykkes, returneres et token, udløbstidspunkt Direct Line og et conversationId for den anmodede Helpdesk-medarbejder. Eksempel:
{
"token": "RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xn",
"expires_in": 3600,
"conversationId": "abc123"
}
Eksempel på eksempelkode
I følgende eksempel bruges eksempler fra connector eksempelkoden til at hente et Direct Line token for en Copilot Studio Helpdesk-medarbejder.
/// <summary>
/// Get directline token for connecting bot
/// </summary>
/// <returns>directline token as string</returns>
public async Task<DirectLineToken> GetTokenAsync(string url)
{
try
{
return await _httpClient.GetFromJsonAsync<DirectLineToken>(url);
}
catch (HttpRequestException ex)
{
throw ex;
}
}
/// <summary>
/// class for serialization/deserialization DirectLineToken
/// </summary>
public class DirectLineToken
{
public string Token { get; set; }
public int Expires_in { get; set; }
public string ConversationId { get; set; }
}
Svarobjektet er det samme som den GET
-forespørgsel, vi så tidligere.
{
"token": "RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xn",
"expires_in": 3600,
"conversationId": "abc123"
}
Bruges Direct Line til at kommunikere med Helpdesk-medarbejder
Når du har hentet tokenet Direct Line , er du klar til at have en samtale med din Copilot Studio Helpdesk-medarbejder med Direct Line. Følg instruktionerne i Bot Framework Direct Line-API for at starte en samtale og sende og modtage meddelelser.
I følgende eksempel bruges eksempler fra connector eksempelkoden til at starte en samtale og sende og modtage meddelelser fra en Copilot Studio Helpdesk-medarbejder.
Initialiser en DirectLineClient-forekomst med Direct Line-tokenet, og start en samtale:
// Use the retrieved token to create a DirectLineClient instance using (var directLineClient = new DirectLineClient(token)) { var conversation = await directLineClient.Conversations.StartConversationAsync(); string conversationtId = conversation.ConversationId; }
Når en samtale er startet, kan hver samtale identificeres og forbindes ved hjælp af kombinationen af
token
ogconversationtId
. Send en brugermeddelelse til en eksisterende samtale:// Use the retrieved token to create a DirectLineClient instance // Use the conversationId from above step // endConversationMessage is your predefined message indicating that user wants to quit the chat while (!string.Equals(inputMessage = /*Get_User_Input()*/, endConversationMessage, StringComparison.OrdinalIgnoreCase)) { using (var directLineClient = new DirectLineClient(token)) { // Send user message using directlineClient // Payload is a Microsoft.Bot.Connector.DirectLine.Activity await directLineClient.Conversations.PostActivityAsync(conversationtId, new Activity() { Type = ActivityTypes.Message, From = new ChannelAccount { Id = "userId", Name = "userName" }, Text = inputMessage, TextFormat = "plain", Locale = "en-Us", }); } }
Hent Helpdesk-medarbejder's svar ved hjælp af det samme
token
ogconversationId
. De hentede Direct Line svar aktiviteter indeholder både brugerens og Helpdesk-medarbejder's meddelelser. Du kan filtrere svar aktiviteter efter navnet på Helpdesk-medarbejder for kun at få svar besked på Helpdesk-medarbejder.// Use the same token to create a directLineClient using (var directLineClient = new DirectLineClient(token)) { // To get the first response set string watermark = null // More information about watermark is available at // https://learn.microsoft.com/azure/bot-service/rest-api/bot-framework-rest-direct-line-1-1-receive-messages?view=azure-bot-service-4.0 // response from bot is of type Microsoft.Bot.Connector.DirectLine.ActivitySet ActivitySet response = await directLineClient.Conversations.GetActivitiesAsync(conversationtId, watermark); // update watermark from response watermark = response?.Watermark; // response contains set of Activity from both user and bot // To display bot response only, filter Activity.From.Name equals to your bot name List<Activity> botResponses = response?.Activities?.Where(x => x.Type == ActivityTypes.Message && string.Equals(x.From.Name, /*Bot_Name*/, StringComparison.Ordinal)).ToList(); // Display botResponses }
Opdater et Direct Line-token
Du skal muligvis tilføje kode for at opdatere tokenet Direct Line , hvis dit program har en lang samtale med Helpdesk-medarbejder. Tokenet udløber, men kan opdateres, før det udløber. Få mere at vide i Direct Line-godkendelse.
I følgende eksempel bruges eksempler fra Connector-eksempelkoden til at opdatere tokenet til en eksisterende Copilot Studio-samtale:
// DirectLine provides a token refresh method
// Requires the currentToken valid when refreshing
string refreshToken = new DirectLineClient(currentToken).Tokens.RefreshToken().Token;
// create a new directline client with refreshToken
directLineClient = new DirectLineClient(refreshToken);
// use new directLineClient to communicate to your bot
Fortolk data i samtaledata fra Helpdesk-medarbejder
Når du har startet en samtale med Helpdesk-medarbejder, bruger JSON-dataene i samtalen standardaktiviteten Microsoft Bot Framework Direct Line . Du kan få mere at vide på Bot Framework Direct Line-API.
Håndtering af afleveringsaktivitet
Hvis din applikation skal aflevere til en udbyder af live helpdesk-medarbejdere, skal du håndtere afleveringsaktiviteten. Der sendes en afleveringsaktivitet, når noden "Overførsel til medarbejder" rammes. Du kan få mere at vide om nyttedataene for afleveringsaktivitet.
Udløs en velkomstmeddelelse
Hvis du ønsker, at din Helpdesk-medarbejder skal sende hilsenen systememne automatisk, når en bruger starter en samtale, kan du sende en aktivitet med Type=event
og Name=startConversation
.