Dela via


Skicka och ta emot sms

GÄLLER FÖR: SDK v4

Det primära sättet för din robot att kommunicera med användare och på samma sätt ta emot kommunikation är genom meddelandeaktiviteter . Vissa meddelanden får bara innehålla oformaterad text, medan andra kan innehålla mer omfattande innehåll, till exempel kort eller bifogade filer. Robotens turhanterare tar emot meddelanden från användaren och du kan skicka svar till användaren därifrån. Turn-kontextobjektet innehåller metoder för att skicka tillbaka meddelanden till användaren. I den här artikeln beskrivs hur du skickar oformaterade textmeddelanden.

Markdown stöds för de flesta textfält, men stödet kan variera beroende på kanal.

Om du vill ha en robot som skickar och tar emot meddelanden kan du följa snabbstarterna överst i innehållsförteckningen eller läsa artikeln om hur robotar fungerar, som även länkar till exempel som du kan köra själv.

Kommentar

Bot Framework JavaScript-, C#- och Python-SDK:erna fortsätter att stödjas, men Java SDK dras tillbaka med slutligt långsiktigt stöd som slutar i november 2023.

Befintliga robotar som skapats med Java SDK fortsätter att fungera.

Om du vill skapa en ny robot kan du använda Microsoft Copilot Studio och läsa om hur du väljer rätt copilot-lösning.

Mer information finns i Framtiden för robotbygge.

Skicka ett textmeddelande

Om du vill skicka ett textmeddelande anger du den sträng som du vill skicka som aktivitet:

I robotens aktivitetshanterare använder du metoden turn context-objektet för SendActivityAsync att skicka ett enda meddelandesvar. Du kan också använda objektets SendActivitiesAsync metod för att skicka flera svar samtidigt.

await turnContext.SendActivityAsync($"Welcome!");

Ta emot ett textmeddelande

Om du vill hantera ett textmeddelande använder du textegenskapen för aktivitetsobjektet.

I robotens aktivitetshanterare använder du följande kod för att ta emot ett meddelande.

var responseMessage = turnContext.Activity.Text;

Skicka en typindikator

Användarna förväntar sig ett snabbt svar på sina meddelanden. Om roboten utför en tidskrävande uppgift som att anropa en server eller köra en fråga utan att ge användaren någon indikation på att roboten hörde dem, kan användaren bli otålig och skicka ytterligare meddelanden eller bara anta att roboten är bruten.

Web Chat- och Direct Line-kanalrobotar kan stödja sändning av en typningsindikator för att visa användaren att meddelandet togs emot och bearbetas. Din robot måste dock låta svängen avslutas inom 15 sekunder, annars överskrider anslutningstjänsten tidsgränsen. För längre processer kan du läsa mer om att skicka proaktiva meddelanden.

I följande exempel visas hur du skickar en typningsindikator.

protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
    if (string.Equals(turnContext.Activity.Text, "wait", System.StringComparison.InvariantCultureIgnoreCase))
    {
        await turnContext.SendActivitiesAsync(
            new Activity[] {
                new Activity { Type = ActivityTypes.Typing },
                new Activity { Type = "delay", Value= 3000 },
                MessageFactory.Text("Finished typing", "Finished typing"),
            },
            cancellationToken);
    }
    else
    {
        var replyText = $"Echo: {turnContext.Activity.Text}. Say 'wait' to watch me type.";
        await turnContext.SendActivityAsync(MessageFactory.Text(replyText, replyText), cancellationToken);
    }
}

Ytterligare resurser

Nästa steg