Envoyer et recevoir des SMS
S'APPLIQUE À : SDK v4
Pour communiquer avec les utilisateurs ainsi que pour recevoir des communications, votre bot aura pour moyen principal les activités de message. Certains messages peuvent simplement se composer de texte brut, tandis que d'autres peuvent contenir un contenu plus riche, comme les cartes ou les pièces jointes. Le gestionnaire de tours de votre robot reçoit des messages de l’utilisateur, et vous pouvez envoyer des réponses à l’utilisateur à ce moment. L’objet de contexte de tour fournit des méthodes pour renvoyer des messages à l’utilisateur. Cet article décrit comment envoyer des messages en texte brut.
Markdown est pris en charge pour la plupart des champs de texte, mais sa prise en charge varie selon le canal.
Pour un bot actif qui envoie et reçoit des messages, suivez les démarrages rapides en haut de la table des matières ou consultez l'article qui présente le fonctionnement des bots et qui contient également des liens vers des exemples que vous pouvez exécuter vous-même.
Remarque
Les kits SDK JavaScript, C# et Python Bot Framework continueront d’être pris en charge. Toutefois, le kit de développement logiciel (SDK) Java est mis hors service avec une prise en charge finale à long terme se terminant en novembre 2023.
Les bots existants créés avec le kit de développement logiciel (SDK) Java continueront de fonctionner.
Pour la nouvelle génération de bots, envisagez d’utiliser Microsoft Copilot Studio et lisez-en plus sur le choix de la solution copilote appropriée.
Pour plus d'informations, consultez Les futures versions de bot.
Envoyer un SMS
Pour envoyer un message texte, spécifiez la chaîne que vous voulez envoyer en tant qu'activité :
Dans le gestionnaire d’activités du bot, utilisez la méthode SendActivityAsync
de l’objet de contexte de tour pour envoyer un seul message de réponse. Vous pouvez également utiliser la méthode SendActivitiesAsync
de l’objet pour envoyer plusieurs réponses à la fois.
await turnContext.SendActivityAsync($"Welcome!");
Recevoir un message texte
Pour traiter un SMS, utilisez la propriété texte de l'objet activité.
Dans les gestionnaires d’activités du bot, utilisez le code suivant pour recevoir un message.
var responseMessage = turnContext.Activity.Text;
Envoyer un indicateur de saisie
Les utilisateurs attendent une réponse rapide à leurs messages. Si votre bot effectue une tâche longue comme l’appel d’un serveur ou l’exécution d’une requête sans fournir à l’utilisateur une indication que le bot a bien reçu sa demande, cet utilisateur peut perdre patience et envoyer des messages supplémentaires ou supposer tout simplement que le bot ne fonctionne pas.
Les bots des canaux Web Chat et Direct Line prennent en charge l’envoi d’une indication de saisie pour prévenir l’utilisateur que le message a bien été reçu et qu’il est en cours de traitement. Toutefois, votre bot doit laisser le tour s'arrêter dans les 15 secondes ou le service Connecteur aura expiré. Pour des processus plus longs, informez-vous d'avantage sur l'envoi de messages proactifs.
L’exemple suivant montre comment envoyer une indication de saisie.
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);
}
}