Modifications apportées à l’API du bot Teams pour récupérer les membres d’équipe ou de conversation
Remarque
- Le processus de dépréciation de
TeamsInfo.getMembers
etTeamsInfo.GetMembersAsync
API a démarré. Initialement, ils sont fortement limités à cinq demandes par minute et retournent un maximum de 10 000 membres par équipe. La liste complète n’est donc pas retournée à mesure que la taille de l’équipe augmente. - Vous devez effectuer une mise à jour vers la version 4.10 ou ultérieure du SDK Bot Framework et basculer vers les points de terminaison d’API paginés, ou la classe
TeamsInfo.GetMemberAsync
'API mono-utilisateur. Cela s’applique également à votre bot même si vous n’utilisez pas directement ces API, car les SDK plus anciens appellent ces API pendant événements membersAdded. Pour afficher la liste des modifications à venir, consultez modifications de l’API.
Si vous souhaitez récupérer des informations pour un ou plusieurs membres d’une conversation ou d’une équipe, vous pouvez utiliser les TeamsInfo.GetMembersAsync
API de bot Microsoft Teams pour C# ou TeamsInfo.getMembers
pour les API TypeScript ou Node.js. Pour plus d’informations, consultez récupérer la liste ou le profil utilisateur.
Ces API présentent les inconvénients suivants :
- Pour les grandes équipes, les performances sont médiocres et les délais d’expiration sont plus probables : la taille maximale de l’équipe a considérablement augmenté depuis la publication de Teams. En tant que
GetMembersAsync
ougetMembers
retourne l’intégralité de la liste des membres, le retour de l’appel d’API pour les grandes équipes prend beaucoup de temps, et il est courant que l’appel expire et que vous devez réessayer. - Il est difficile d’obtenir les détails du profil d’un seul utilisateur : pour obtenir les informations de profil d’un seul utilisateur, vous devez récupérer la liste complète des membres, puis rechercher celle que vous souhaitez. Il existe une fonction d’assistance dans le Kit de développement logiciel (SDK) Bot Framework pour simplifier la tâche, mais elle n’est pas efficace.
Avec l’introduction d’équipes à l’échelle de l’organisation, il est nécessaire de mieux aligner ces API avec les contrôles de confidentialité Microsoft 365. Les bots utilisés dans les grandes équipes peuvent récupérer des informations de profil de base similaires à l’autorisation User.ReadBasic.All
Microsoft Graph. Les administrateurs clients ont un grand contrôle sur les applications et les bots qui peuvent être utilisés dans leur locataire, mais ces paramètres sont différents de Microsoft Graph.
Le code suivant fournit un exemple de représentation JSON de ce qui est retourné par les API de bot Teams :
[{
"id": "29:1GcS4EyB_oSI8A88XmWBN7NJFyMqe3QGnJdgLfFGkJnVelzRGos0bPbpsfJjcbAD22bmKc4GMbrY2g4JDrrA8vM06X1-cHHle4zOE6U4ttcc",
"name": "Anon1 (Guest)",
"tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47",
"userRole": "anonymous"
}, {
"id": "29:1bSnHZ7Js2STWrgk6ScEErLk1Lp2zQuD5H2qQ960rtvstKp8tKLl-3r8b6DoW0QxZimuTxk_kupZ1DBMpvIQQUAZL-PNj0EORDvRZXy8kvWk",
"objectId": "76b0b09f-d410-48fd-993e-84da521a597b",
"givenName": "John",
"surname": "Patterson",
"email": "johnp@fabrikam.com",
"userPrincipalName": "johnp@fabrikam.com",
"tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47",
"userRole": "user"
}, {
"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",
"tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47",
"userRole": "user"
}]
Modifications apportées à l’API
Voici les modifications à venir de l’API :
- Une nouvelle API est créée
TeamsInfo.GetPagedMembersAsync
pour récupérer les informations de profil des membres d'un chat ou d'une équipe. Cette API est désormais disponible avec le SDK Bot Framework version 4.8 ou ultérieure. Pour le développement dans toutes les autres versions, utilisez la méthodeGetConversationPagedMembers
.
Remarque
Effectuez une mise à niveau vers la dernière version du Kit de développement logiciel (SDK) Microsoft Bot Framework comme suit :
- Kit de développement logiciel (SDK) Bot Framework v3 : mise à niveau vers la version 3.30.2 ou ultérieure.
- Kit de développement logiciel (SDK) Bot Framework v4 : mise à niveau vers la version 4.8 ou ultérieure.
Une nouvelle API est créée
TeamsInfo.GetMemberAsync
pour récupérer les informations de profil pour un seul utilisateur. Il prend l’ID de l’équipe ou de la conversation et un UPN qui estuserPrincipalName
, l’IDobjectId
d’objet Microsoft Entra ou l’IDid
utilisateur Teams comme paramètres et retourne les informations de profil pour cet utilisateur.Remarque
objectId
est remplacé paraadObjectId
pour correspondre à ce qui est appelé dans l’objetActivity
d’un message Bot Framework. La nouvelle API est disponible avec la version 4.8 ou ultérieure du SDK Bot Framework. Il est également disponible dans l’extension du Kit de développement logiciel (SDK) Teams Bot Framework 3.x. Pendant ce temps, vous pouvez utiliser le point de terminaison REST.TeamsInfo.GetMembersAsync
en C# etTeamsInfo.getMembers
dans TypeScript ou Node.js est formellement déconseillé. Une fois la nouvelle API disponible, vous devez mettre à jour vos bots pour l’utiliser. Cela s’applique également à la API REST sous-jacente que ces API utilisent.Les bots ne peuvent pas récupérer de manière proactive les propriétés ou
email
pour lesuserPrincipalName
membres d’une conversation ou d’une équipe. Les bots doivent utiliser les API Graph pour récupérer les informations requises. La nouvelleGetConversationPagedMembers
API ne peut pas retourner lesuserPrincipalName
propriétés etemail
.Remarque
Nous vous recommandons d’utiliser l’API Graph avec un jeton d’accès pour récupérer des informations.