Cet article est basé sur le Kit de développement logiciel (SDK) Bot Framework v3. Si vous recherchez la documentation actuelle version 4.6 ou ultérieure du Kit de développement logiciel (SDK), consultez la section Bots conversationnels .
Microsoft Teams envoie des notifications à votre bot pour les modifications ou événements qui se produisent dans les étendues où votre bot est actif. La liste suivante fournit des événements pour déclencher la logique de service :
Déclenchez un message de bienvenue lorsque votre bot est ajouté à une équipe.
Interrogez et mettez en cache les informations de groupe lorsque le bot est ajouté à une conversation de groupe.
Mettez à jour les informations mises en cache sur l’appartenance à l’équipe ou les informations de canal.
Supprimez les informations mises en cache pour une équipe si le bot est supprimé.
Lorsqu’un message de bot est aimé par un utilisateur.
Chaque événement de bot est envoyé en tant qu’objet Activity dans lequel messageType définit les informations contenues dans l’objet. Pour les messages de type message, consultez Envoi et réception de messages.
Les événements Teams et de groupe, déclenchés hors du conversationUpdate type, ont plus d’informations d’événement Teams passées dans le cadre de l’objet channelData . Par conséquent, votre gestionnaire d’événements doit interroger la channelData charge utile pour les métadonnées Teams eventType et plus spécifiques à l’événement.
Le tableau suivant répertorie les événements sur lequel votre bot peut recevoir et prendre des mesures.
L’événement conversationUpdate est envoyé à votre robot lorsqu’il reçoit des informations sur les mises à jour d’appartenance pour les équipes dans lesquelles il a été ajouté. Il reçoit également une mise à jour lorsqu’il a été ajouté pour la première fois, spécifiquement pour les conversations personnelles. Les informations utilisateur () sontId uniques pour votre bot et peuvent être mises en cache pour une utilisation ultérieure par votre service, comme l’envoi d’un message à un utilisateur spécifique.
Bot ou utilisateur ajouté à une équipe
L’événement conversationUpdate avec l’objet membersAdded dans la charge utile est envoyé lorsqu’un bot est ajouté à une équipe ou qu’un nouvel utilisateur est ajouté à une équipe où un bot a été ajouté. Teams ajoute eventType.teamMemberAdded également dans l’objet channelData .
Étant donné que cet événement est envoyé dans les deux cas, vous devez analyser l’objet membersAdded pour déterminer si l’ajout était un utilisateur ou le bot lui-même. Pour cette dernière, il est recommandé d’envoyer un message de bienvenue au canal afin que les utilisateurs puissent comprendre les fonctionnalités fournies par votre bot.
Exemple de code : vérification si le bot était le membre ajouté
.NET
for (int i = 0; i < sourceMessage.MembersAdded.Count; i++)
{
if (sourceMessage.MembersAdded[i].Id == sourceMessage.Recipient.Id)
{
addedBot = true;
break;
}
}
Node.js
const builder = require('botbuilder');
var c = new builder.ChatConnector({appId: BOT_APP_ID, appPassword: .BOT_SECRET});
var bot = new builder.UniversalBot(c);
bot.on('conversationUpdate', (msg) => {
var members = msg.membersAdded;
// Loop through all members that were just added to the team
for (var i = 0; i < members.length; i++) {
// See if the member added was our bot
if (members[i].id.includes(BOT_APP_ID)) {
var botmessage = new builder.Message()
.address(msg.address)
.text('Hello World!');
bot.send(botmessage, function(err) {});
}
}
});
L’événement conversationUpdate avec l’objet membersAdded dans la charge utile est envoyé lorsqu’un utilisateur est ajouté à une réunion planifiée privée. Les détails de l’événement sont envoyés même lorsque des utilisateurs anonymes rejoignent la réunion.
Notes
Lorsqu’un utilisateur anonyme est ajouté à une réunion, l’objet de charge utile membersAdded n’a pas de champ aadObjectId.
Lorsqu’un utilisateur anonyme est ajouté à une réunion, from objet dans la charge utile a toujours l’ID de l’organisateur de la réunion, même si l’utilisateur anonyme a été ajouté par un autre présentateur.
Exemple de schéma : utilisateur ajouté à la réunion
Votre bot reçoit un conversationUpdate avec membersAdded lorsqu’un utilisateur l’ajoute directement pour une conversation personnelle. Dans ce cas, la charge utile reçue par votre bot ne contient pas l’objet channelData.team. Vous devez l’utiliser comme filtre si vous souhaitez que votre bot propose un autre message de bienvenue en fonction de l’étendue.
Notes
Pour les bots à étendue personnelle, votre bot recevra l’événement conversationUpdate plusieurs fois, même si le bot est supprimé et ajouté à nouveau. Pour le développement et les tests, vous pouvez trouver utile d’ajouter une fonction d’assistance qui vous permettra de réinitialiser complètement votre bot. Pour plus d’informations, consultez Node.js exemple ou Exemple C# pour plus d’informations sur l’implémentation de ceci.
Exemple de schéma : bot ajouté au contexte personnel
L’événement conversationUpdate avec l’objet membersRemoved dans la charge utile est envoyé lorsque votre bot est supprimé d’une équipe ou qu’un utilisateur est supprimé d’une équipe où un bot a été ajouté. Teams ajoute eventType.teamMemberRemoved également dans l’objet channelData . Comme avec l’objet membersAdded, vous devez analyser l’objet membersRemoved de l’ID d’application de votre bot pour déterminer qui a été supprimé.
L’événement conversationUpdate avec l’objet membersRemoved dans la charge utile est envoyé lorsqu’un utilisateur est supprimé d’une réunion planifiée privée. Les détails de l’événement sont envoyés même lorsque des utilisateurs anonymes rejoignent la réunion.
Notes
Lorsqu’un utilisateur anonyme est supprimé d’une réunion, l’objet de charge utile membersRemoved n’a pas aadObjectId champ.
Lorsqu’un utilisateur anonyme est supprimé d’une réunion, from objet dans la charge utile a toujours l’ID de l’organisateur de la réunion, même si l’utilisateur anonyme a été supprimé par un autre présentateur.
Exemple de schéma : utilisateur supprimé de la réunion
Il n’existe aucune fonctionnalité permettant d’interroger tous les noms d’équipe, et le nom de l’équipe n’est pas retourné dans les charges utiles d’autres événements.
Votre bot est averti lorsque l’équipe dans laquelle il se trouve a été renommée. Il reçoit un événement de conversationUpdate avec eventType.teamRenamed dans l’objet channelData . Il n’existe aucune notification de création ou de suppression d’équipe, car les bots existent uniquement dans le cadre des équipes et n’ont aucune visibilité en dehors de l’étendue dans laquelle ils ont été ajoutés.
Votre bot est averti lorsqu’un canal est créé, renommé ou supprimé dans une équipe où il a été ajouté. Là encore, l’événement conversationUpdate est reçu et un identificateur d’événement spécifique à Teams est envoyé dans le cadre de l’objet channelData.eventType , où les données du channel.id canal sont le GUID du canal et channel.name contiennent le nom du canal lui-même.
Les événements de canal sont les suivants :
channelCreated Un utilisateur ajoute un nouveau canal à l’équipe.
channelRenamed Un utilisateur renomme un canal existant.
L’événement messageReaction est envoyé lorsqu’un utilisateur ajoute ou supprime sa réaction à un message, qui a été initialement envoyé par votre bot.
replyToId contient l’ID du message spécifique.
Exemple de schéma : un utilisateur aime un message
La source de ce contenu se trouve sur GitHub, où vous pouvez également créer et examiner les problèmes et les demandes de tirage. Pour plus d’informations, consultez notre guide du contributeur.
Commentaires sur Platform Docs
Platform Docs est un projet open source. Sélectionnez un lien pour fournir des commentaires :
Démontrez vos compétences pour planifier, déployer, configurer et gérer Microsoft Teams afin de vous concentrer sur une collaboration et une communication efficaces dans un environnement Microsoft 365.