Änderungen an der Teams-Bot-API zum Abrufen von Team- oder Chatmitgliedern
Hinweis
- Der Veraltetkeitsprozess für
TeamsInfo.getMembers
- undTeamsInfo.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 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 erheblich gewachsen. Da
GetMembersAsync
odergetMembers
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 organisationsweiten Teams besteht die Anforderung, diese APIs besser an microsoft 365-Datenschutzkontrollen 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 dieGetConversationPagedMembers
-Methode.
Hinweis
Führen Sie wie folgt ein Upgrade auf die neueste Version des Microsoft Bot Framework SDK aus:
- 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
, die Microsoft Entra-Objekt-IDobjectId
oder die Teams-Benutzer-IDid
als Parameter und gibt die Profilinformationen für diesen Benutzer zurück.Hinweis
objectId
wird inaadObjectId
geändert, um demActivity
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# undTeamsInfo.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.Bots können die
userPrincipalName
Eigenschaften oderemail
für Mitglieder eines Chats oder Teams nicht proaktiv abrufen. Bots müssen die Graph-APIs verwenden, um die erforderlichen Informationen abzurufen. Die neueGetConversationPagedMembers
API kann dieuserPrincipalName
Eigenschaften undemail
nicht zurückgeben.Hinweis
Es wird empfohlen, die Graph-API mit einem Zugriffstoken zum Abrufen von Informationen zu verwenden.