Sms-berichten verzenden en ontvangen
VAN TOEPASSING OP: SDK v4
De primaire manier waarop uw bot communiceert met gebruikers en eveneens communicatie ontvangt, is via berichtenactiviteiten . Sommige berichten bevatten mogelijk alleen tekst zonder opmaak, terwijl andere mogelijk uitgebreidere inhoud bevatten, zoals kaarten of bijlagen. De beurthandler van uw bot ontvangt berichten van de gebruiker en u kunt antwoorden naar de gebruiker verzenden. Het contextobject turn biedt methoden voor het terugsturen van berichten naar de gebruiker. In dit artikel wordt beschreven hoe u berichten zonder opmaak verzendt.
Markdown wordt ondersteund voor de meeste tekstvelden, maar ondersteuning kan per kanaal verschillen.
Voor een actieve bot die berichten verzendt en ontvangt, volgt u de quickstarts boven aan de inhoudsopgave of bekijkt u het artikel over hoe bots werken, die ook koppelingen naar voorbeelden bevat die u zelf kunt uitvoeren.
Notitie
De Sdk's voor Bot Framework JavaScript, C# en Python blijven ondersteund, maar de Java SDK wordt buiten gebruik gesteld met definitieve langetermijnondersteuning die eindigt op november 2023.
Bestaande bots die zijn gebouwd met de Java SDK blijven functioneren.
Voor het bouwen van nieuwe bots kunt u Microsoft Copilot Studio gebruiken en lezen over het kiezen van de juiste copilot-oplossing.
Zie De toekomst van botbouw voor meer informatie.
Een sms-bericht verzenden
Als u een sms-bericht wilt verzenden, geeft u de tekenreeks op die u als activiteit wilt verzenden:
Gebruik in de activiteitshandlers van de bot de methode van SendActivityAsync
het contextobject turn om één berichtantwoord te verzenden. U kunt ook de methode van SendActivitiesAsync
het object gebruiken om meerdere antwoorden tegelijk te verzenden.
await turnContext.SendActivityAsync($"Welcome!");
Een sms-bericht ontvangen
Als u een tekstbericht wilt verwerken, gebruikt u de teksteigenschap van het activiteitsobject .
Gebruik in de activiteitshandlers van de bot de volgende code om een bericht te ontvangen.
var responseMessage = turnContext.Activity.Text;
Een typeindicator verzenden
Gebruikers verwachten een tijdige reactie op hun berichten. Als uw bot een langlopende taak uitvoert, zoals het aanroepen van een server of het uitvoeren van een query zonder de gebruiker een indicatie te geven dat de bot deze heeft gehoord, kan de gebruiker ongeduldig worden en extra berichten verzenden of aannemen dat de bot is verbroken.
Webchat- en Direct Line-kanaalbots kunnen het verzenden van een typeindicatie ondersteunen om de gebruiker weer te geven dat het bericht is ontvangen en wordt verwerkt. Uw bot moet de beurt echter binnen 15 seconden beëindigen, anders treedt er een time-out op voor de connectorservice. Lees meer over het verzenden van proactieve berichten voor langere processen.
In het volgende voorbeeld ziet u hoe u een typeindicatie verzendt.
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);
}
}