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 et TeamsInfo.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.

Actuellement, 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.GetMembersAsyncAPI 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’attente sont plus probables : la taille maximale de l’équipe a considérablement augmenté depuis la publication de Teams début 2017. En tant que GetMembersAsync ou getMembers 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 de organization équipes étendues, il est nécessaire de mieux aligner ces API sur 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éthode GetConversationPagedMembers.

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 est userPrincipalName, Microsoft Entra ID d’objet , ou l’ID objectIdid utilisateur Teams comme paramètres et retourne les informations de profil pour cet utilisateur.

    Remarque

    objectId est remplacé par aadObjectId pour correspondre à ce qui est appelé dans l’objet Activity 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# et TeamsInfo.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.

  • Fin 2022, les bots ne peuvent pas récupérer de manière proactive les propriétés userPrincipalName ou email pour les membres d’une conversation ou d’une équipe. Les bots doivent utiliser les API Graph pour récupérer les informations requises. La nouvelle api GetConversationPagedMembers ne peut pas retourner les propriétés userPrincipalName et email de fin 2022.

    Remarque

    Nous vous recommandons d’utiliser le API Graph avec un jeton d’accès pour récupérer des informations.

Voir aussi