Änderungen an der Teams-Bot-API zum Abrufen von Team- oder Chatmitgliedern

Hinweis

Der Veraltetkeitsprozess für TeamsInfo.getMembers - und TeamsInfo.GetMembersAsync -APIs wurde gestartet. Anfangs werden sie stark auf fünf Anforderungen pro Minute gedrosselt und geben maximal 10.000 Mitglieder pro Team zurück. Dies führt dazu, dass die vollständige Liste nicht zurückgegeben wird, wenn die Teamgröße zunimmt. Sie müssen auf Version 4.10 oder höher des Bot Framework SDK aktualisieren und zu den paginierten API-Endpunkten oder zur TeamsInfo.GetMemberAsync Einzelbenutzer-API wechseln. Dies gilt auch für Ihren Bot, wenn Sie diese APIs nicht direkt verwenden, da ältere SDKs diese APIs während memberAdded-Ereignissen aufrufen. Die Liste der bevorstehenden Änderungen finden Sie unter API-Änderungen.

Wenn Sie Informationen für ein oder mehrere Mitglieder eines Chats oder Teams abrufen möchten, können Sie derzeit die Microsoft Teams-Bot-APIsTeamsInfo.GetMembersAsync für C# oder TeamsInfo.getMembers für TypeScript oder Node.js-APIs verwenden. Weitere Informationen finden Sie unter Abrufen einer Liste oder eines Benutzerprofils.

Diese APIs weisen die folgenden Mängel auf:

  • Bei großen Teams ist die Leistung schlecht, und Timeouts sind wahrscheinlicher: Die maximale Teamgröße ist seit der Veröffentlichung von Teams Anfang 2017 erheblich gewachsen. Da GetMembersAsync oder getMembers die gesamte Mitgliederliste zurückgibt, dauert es lange, bis der API-Aufruf für große Teams zurückgegeben wird, und es ist üblich, dass für den Aufruf ein Timeout auftritt, und Sie müssen es erneut versuchen.
  • Das Abrufen von Profildetails für einen einzelnen Benutzer ist schwierig: Um die Profilinformationen für einen einzelnen Benutzer abzurufen, müssen Sie die gesamte Mitgliederliste abrufen und dann nach der gewünschten Liste suchen. Es gibt eine Hilfsfunktion im Bot Framework SDK, um es zu vereinfachen, aber sie ist nicht effizient.

Mit der Einführung von organization breiten Teams besteht die Anforderung, diese APIs besser an die Datenschutzkontrollen von Microsoft 365 auszurichten. Bots, die in großen Teams verwendet werden, können grundlegende Profilinformationen ähnlich der User.ReadBasic.All Microsoft Graph-Berechtigung abrufen. Mandantenadministratoren haben eine große Kontrolle darüber, welche Apps und Bots in ihrem Mandanten verwendet werden können, aber diese Einstellungen unterscheiden sich von Microsoft Graph.

Der folgende Code enthält eine JSON-Beispieldarstellung der von Teams-Bot-APIs zurückgegebenen Daten:

[{
    "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"
}]

API-Änderungen

Im Folgenden sind die bevorstehenden API-Änderungen aufgeführt:

  • Eine neue API wird zum Abrufen von Profilinformationen für Mitglieder eines Chats oder Teams erstellt TeamsInfo.GetPagedMembersAsync . Diese API ist jetzt mit dem Bot Framework Sdk Version 4.8 oder höher verfügbar. Verwenden Sie für die Entwicklung in allen anderen Versionen die GetConversationPagedMembers -Methode.

Hinweis

Führen Sie wie folgt ein Upgrade auf die neueste Version des Microsoft Bot Framework SDK durch:

  • Bot Framework SDK v3: Upgrade auf Version 3.30.2 oder höher.
  • Bot Framework SDK v4: Upgrade auf Version 4.8 oder höher.
  • Es wird eine neue API zum Abrufen der Profilinformationen für einen einzelnen Benutzer erstellt TeamsInfo.GetMemberAsync . Sie verwendet die ID des Teams oder Chats und einen UPNuserPrincipalName, Microsoft Entra Objekt-ID objectIdoder die Teams-Benutzer-ID id als Parameter und gibt die Profilinformationen für diesen Benutzer zurück.

    Hinweis

    objectId wird in aadObjectId geändert, um dem Activity Im -Objekt einer Bot Framework-Nachricht zu entsprechen. Die neue API ist ab Version 4.8 des Bot Framework SDK verfügbar. Es ist auch in der Teams SDK-Erweiterung Bot Framework 3.x verfügbar. In der Zwischenzeit können Sie den REST-Endpunkt verwenden.

  • TeamsInfo.GetMembersAsync in C# und TeamsInfo.getMembers in TypeScript oder Node.js ist formal veraltet. Sobald die neue API verfügbar ist, müssen Sie Ihre Bots aktualisieren, um sie zu verwenden. Dies gilt auch für die zugrunde liegende REST-API, die diese APIs verwenden.

  • Bis Ende 2022 können Bots die userPrincipalName Eigenschaften oder email für Mitglieder eines Chats oder Teams nicht proaktiv abrufen. Bots müssen die Graph-APIs verwenden, um die erforderlichen Informationen abzurufen. Die neue GetConversationPagedMembers API kann die userPrincipalName Eigenschaften und email ab Ende 2022 nicht zurückgeben.

    Hinweis

    Es wird empfohlen, die Graph-API mit einem Zugriffstoken zum Abrufen von Informationen zu verwenden.

Siehe auch