Remarque
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.
Important
Cet article est basé sur le SDK Bot Framework v3. Si vous recherchez la version 4.6 ou ultérieure de la documentation actuelle du Kit de développement logiciel (SDK), consultez la section robots conversationnels .
Votre bot peut accéder à des informations contextuelles supplémentaires sur l’équipe ou la conversation, telles que le profil utilisateur. Ces informations peuvent être utilisées pour enrichir les fonctionnalités de votre bot et fournir une expérience plus personnalisée.
Remarque
- Les API de bot spécifiques à Microsoft Teams sont mieux accessibles via nos extensions pour le SDK Bot Builder.
- Pour C# ou .NET, téléchargez notre package NuGet Microsoft.Bot.Connector.Teams .
- Pour Node.js développement, la fonctionnalité Bot Builder for Teams est intégrée au SDK Bot Framework v4.6.
Récupérer la liste de l’équipe
Votre bot peut rechercher la liste des membres de l’équipe et leur profil de base. Les profils de base incluent les ID utilisateur Teams et des informations Microsoft Entra telles que le nom et l’ID d’objet. Vous pouvez utiliser ces informations pour corréler les identités des utilisateurs. Par exemple, la case activée est un membre de l’équipe si un utilisateur connecté à un onglet via des informations d’identification de Microsoft Entra est un membre de l’équipe.
Exemple d’API REST
Émettez directement une requête GET sur /conversations/{teamId}/members/, en utilisant la serviceUrl valeur comme point de terminaison.
Il teamId peut être trouvé dans l’objet channeldata de la charge utile d’activité que votre bot reçoit dans les scénarios suivants :
- Lorsqu’un utilisateur envoie un message ou interagit avec votre bot dans un contexte d’équipe. Pour plus d’informations, consultez Réception de messages.
- Lorsqu’un nouvel utilisateur ou un nouveau bot est ajouté à une équipe. Pour plus d’informations, consultez bot ou utilisateur ajouté à une équipe.
Remarque
- Utilisez toujours l’ID d’équipe lors de l’appel de l’API.
- La
serviceUrlvaleur a tendance à être stable mais peut changer. Lorsqu’un nouveau message arrive, votre bot doit vérifier sa valeur stockéeserviceUrl.
GET /v3/conversations/19:ja0cu120i1jod12j@skype.net/members
Response body
[{
"id": "29:1GcS4EyB_oSI8A88XmWBN7NJFyMqe3QGnJdgLfFGkJnVelzRGos0bPbpsfJjcbAD22bmKc4GMbrY2g4JDrrA8vM06X1-cHHle4zOE6U4ttcc",
"objectId": "9d3e08f9-a7ae-43aa-a4d3-de3f319a8a9c",
"givenName": "Larry",
"surname": "Brown",
"email": "Larry.Brown@fabrikam.com",
"userPrincipalName": "labrown@fabrikam.com"
}, {
"id": "29:1bSnHZ7Js2STWrgk6ScEErLk1Lp2zQuD5H2qQ960rtvstKp8tKLl-3r8b6DoW0QxZimuTxk_kupZ1DBMpvIQQUAZL-PNj0EORDvRZXy8kvWk",
"objectId": "76b0b09f-d410-48fd-993e-84da521a597b",
"givenName": "John",
"surname": "Patterson",
"email": "johnp@fabrikam.com",
"userPrincipalName": "johnp@fabrikam.com"
}, {
"id": "29:1URzNQM1x1PNMr1D7L5_lFe6qF6gEfAbkdG8_BUxOW2mTKryQqEZtBTqDt10-MghkzjYDuUj4KG6nvg5lFAyjOLiGJ4jzhb99WrnI7XKriCs",
"objectId": "6b7b3b2a-2c4b-4175-8582-41c9e685c1b5",
"givenName": "Rick",
"surname": "Stevens",
"email": "Rick.Stevens@fabrikam.com",
"userPrincipalName": "rstevens@fabrikam.com"
}]
Exemple .NET
Appelez GetConversationMembersAsync en utilisant Team.Id pour renvoyer une liste d’ID utilisateur.
Appeler GetConversationMembersAsync pour obtenir userRole la propriété et renvoyer la valeur en tant qu’utilisateur.
// Fetch the members in the current conversation
var connector = new ConnectorClient(new Uri(context.Activity.ServiceUrl));
var teamId = context.Activity.GetChannelData<TeamsChannelData>().Team.Id;
var members = await connector.Conversations.GetConversationMembersAsync(teamId);
// Concatenate information about all members into a string
var sb = new StringBuilder();
foreach (var member in members.AsTeamsChannelAccounts())
{
sb.AppendFormat(
"GivenName = {0}, TeamsMemberId = {1}",
member.Name, member.Id);
sb.AppendLine();
}
// Post the member info back into the conversation
await context.PostAsync($"People in this conversation: {sb.ToString()}");
Exemple Node.js ou TypeScript
[...]
import * as builder from "botbuilder";
[...]
var teamId = session.message.sourceEvent.team.id;
connector.fetchMembers(
(<builder.IChatConnectorAddress>session.message.address).serviceUrl,
teamId,
(err, result) => {
if (err) {
session.endDialog('There is some error');
}
else {
session.endDialog('%s', JSON.stringify(result));
}
}
);
Récupérer le profil utilisateur ou la liste dans une conversation personnelle ou de groupe
Vous pouvez effectuer un appel d’API pour n’importe quelle conversation personnelle afin d’obtenir les informations de profil de l’utilisateur qui discute avec votre bot.
L’appel d’API, les méthodes du Kit de développement logiciel (SDK) et l’objet de réponse sont identiques à l’extraction de la liste de l’équipe. La seule différence est que vous passez le à la conversationId place du teamId.
Récupérer la liste des canaux dans une équipe
Votre bot peut interroger la liste des canaux dans une équipe.
Remarque
- Le nom du canal Général par défaut est renvoyé afin
nullde permettre la localisation. - L’ID de canal pour le canal Général correspond toujours à l’ID d’équipe.
Exemple d’API REST
Émettez directement une requête GET sur /teams/{teamId}/conversations/, en utilisant la serviceUrl valeur comme point de terminaison.
La seule source est teamId un message du contexte d’équipe. Le message est soit un message d’un utilisateur, soit le message que votre bot reçoit lorsqu’il est ajouté à une équipe. Pour plus d’informations, consultez bot ou utilisateur ajouté à une équipe.
Remarque
La serviceUrl valeur a tendance à être stable mais peut changer. Lorsqu’un nouveau message arrive, votre bot doit vérifier sa valeur stockée serviceUrl .
GET /v3/teams/19%3A033451497ea84fcc83d17ed7fb08a1b6%40thread.skype/conversations
Response body
{
"conversations": [{
"id": "19:033451497ea84fcc83d17ed7fb08a1b6@thread.skype",
"name": null
}, {
"id": "19:cc25e4aae50746ecbb11473bba24c70a@thread.skype",
"name": "Materials"
}, {
"id": "19:b7b84cba410c406ba671dbbf5e0a3519@thread.skype",
"name": "Design"
}, {
"id": "19:fc5db2aed489454e8f8c06829ed6c986@thread.skype",
"name": "Marketing"
}]
}
Exemple .NET
L’exemple suivant utilise l’appel FetchChannelList des extensions Teams pour le SDK Bot Builder pour .NET :
ConversationList channels = client.GetTeamsConnectorClient().Teams.FetchChannelList(activity.GetChannelData<TeamsChannelData>().Team.Id);
Node.js exemple
L’exemple suivant utilise fetchChannelList l’appel à partir des extensions Teams pour le SDK Bot Builder pour Node.js:
var teamId = session.message.sourceEvent.team.id;
connector.fetchChannelList(
(session.message.address).serviceUrl,
teamId,
(err, result) => {
if (err) {
session.endDialog('There is an error');
}
else {
session.endDialog('%s', JSON.stringify(result));
}
}
);
Obtenir clientInfo dans le contexte de votre bot
Vous pouvez récupérer les clientInfo dans l’activité de votre bot. clientInfo contient les propriétés suivantes :
- Paramètres régionaux
- Pays
- Plateforme
- Fuseau horaire
Exemple JSON
[
{
"type": "clientInfo",
"locale": "en-US",
"country": "US",
"platform": "Windows",
"timezone": "Asia/Calcutta"
}
]
Exemple C#
var connector = new ConnectorClient(new Uri(context.Activity.ServiceUrl));
{
var clientinfo = context.Activity.Entities[0];
await context.PostAsync($"ClientInfo: clientinfo ");
}