Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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
Pour créer des agents avec votre choix de services IA, d’orchestration et de connaissances, envisagez d’utiliser le Kit de développement logiciel (SDK) Microsoft 365 Agents. Le SDK Agents prend en charge C#, JavaScript ou Python. Vous pouvez en savoir plus sur le Kit de développement logiciel (SDK) Agents à aka.ms/agents. Si vous recherchez une plateforme d’agent SaaS, envisagez Microsoft Copilot Studio. Si vous disposez d’un bot existant créé avec le Kit de développement logiciel (SDK) Bot Framework, vous pouvez mettre à jour votre bot vers le Kit de développement logiciel (SDK) Agents. Vous pouvez passer en revue les principales modifications et mises à jour dans le guide de migration du SDK Bot Framework vers SDK Agents. Les tickets de support pour le Kit de développement logiciel (SDK) Bot Framework ne seront plus pris en charge à compter du 31 décembre 2025.
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);
}
}