Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wichtig
Die Codebeispiele in diesem Abschnitt basieren auf Version 4.6 und höheren Versionen des Bot Framework SDK. Wenn Sie nach Dokumentation zu früheren Versionen suchen, lesen Sie den Abschnitt bots – v3 SDK im Ordner Legacy SDKs der Dokumentation.
Ein Bot kann auf zusätzliche Kontextdaten zu einem Team oder Chat zugreifen, in dem er installiert ist. Diese Informationen können verwendet werden, um die Funktionalität des Bots zu erweitern und eine persönlichere Benutzererfahrung zu bieten.
Abrufen der Mitgliederliste oder des Benutzerprofils
Ihr Bot kann die Liste der Mitglieder und deren grundlegende Benutzerprofile abfragen, einschließlich Teams-Benutzer-IDs und Microsoft Entra Informationen wie Name und ObjectId. Sie können diese Informationen verwenden, um Benutzeridentitäten zu korrelieren. Um beispielsweise zu überprüfen, ob ein Benutzer, der sich über Microsoft Entra Anmeldeinformationen bei einer Registerkarte angemeldet hat, mitglied des Teams ist. Für das Abrufen von Unterhaltungsmitgliedern hängt die minimale oder maximale Seitengröße von der Implementierung ab. Seitengrößen unter 50 werden als 50 behandelt, und größere als 500 sind auf 500 begrenzt. Selbst wenn Sie die nicht ausgelagerte Version verwenden, ist sie in großen Teams unzuverlässig und darf nicht verwendet werden. Weitere Informationen finden Sie unter Änderungen an Microsoft Teams-Bot-APIs zum Abrufen von Team- oder Chatmitgliedern.
Hinweis
- Die Paginierung ist in einem Team und einem Kanal verfügbar.
- Die Paginierung wird in Chats nicht unterstützt. Bei Chats wird immer die gesamte Liste zurückgegeben.
Im folgenden Beispielcode wird der ausgelagerte Endpunkt zum Abrufen der Teilnehmerliste verwendet:
public class MyBot : TeamsActivityHandler
{
protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
var members = new List<TeamsChannelAccount>();
string continuationToken = null;
do
{
// Gets a paginated list of members of one-on-one, group, or team conversation.
var currentPage = await TeamsInfo.GetPagedMembersAsync(turnContext, 100, continuationToken, cancellationToken);
continuationToken = currentPage.ContinuationToken;
members.AddRange(currentPage.Members);
}
while (continuationToken != null);
}
}
Nachdem Sie die Teilnehmerliste oder das Benutzerprofil abgerufen haben, können Sie Details zu einem einzelnen Mitglied abrufen. Um Informationen für ein oder mehrere Mitglieder eines Chats oder Teams abzurufen, verwenden Sie die Microsoft Teams-Bot-APIs TeamsInfo.GetMembersAsync für C# oder TeamsInfo.getMembers für TypeScript-APIs.
Abrufen von Details zu einzelnen Mitgliedern
Sie können die Details eines bestimmten Benutzers auch mithilfe seiner Teams-Benutzer-ID, des UPN oder Microsoft Entra-Objekt-ID abrufen.
Der folgende Beispielcode wird verwendet, um Details zu einzelnen Mitgliedern abzurufen:
public class MyBot : TeamsActivityHandler
{
protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
// Gets the account of a single conversation member.
// This works in one-on-one, group, and team scoped conversations.
var member = await TeamsInfo.GetMemberAsync(turnContext, turnContext.Activity.From.Id, cancellationToken);
}
}
Nachdem Sie Details zu einem einzelnen Mitglied erhalten haben, können Sie Details des Teams abrufen. Um Informationen für ein Team abzurufen, verwenden Sie die Teams-Bot-APIs TeamsInfo.GetMemberDetailsAsync für C# oder TeamsInfo.getTeamDetails für TypeScript.
Abrufen von Teamdetails
Bei der Installation in einem Team kann Ihr Bot Metadaten zu diesem Team abfragen, einschließlich der Microsoft Entra Gruppen-ID.
Der folgende Beispielcode wird verwendet, um die Details des Teams abzurufen:
public class MyBot : TeamsActivityHandler
{
protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
// Gets the details for the given team id. This only works in team scoped conversations.
// TeamsGetTeamInfo: Gets the TeamsInfo object from the current activity.
TeamDetails teamDetails = await TeamsInfo.GetTeamDetailsAsync(turnContext, turnContext.Activity.TeamsGetTeamInfo().Id, cancellationToken);
if (teamDetails != null) {
await turnContext.SendActivityAsync($"The groupId is: {teamDetails.AadGroupId}");
}
else {
// Sends a message activity to the sender of the incoming activity.
await turnContext.SendActivityAsync($"Message did not come from a channel in a team.");
}
}
}
Nachdem Sie Details des Teams erhalten haben, können Sie die Liste der Kanäle in einem Team abrufen. Um Informationen für eine Liste von Kanälen in einem Team abzurufen, verwenden Sie die Teams-Bot-APIs TeamsInfo.GetTeamChannelsAsync für C# oder TeamsInfo.getTeamChannels für TypeScript-APIs.
Abrufen der Liste der Kanäle in einem Team
Ihr Bot kann die Liste der Kanäle in einem Team abfragen.
Hinweis
- Der Name des Standardkanals "Allgemein" wird als
nullzurückgegeben, um die Lokalisierung zu ermöglichen. - Die Kanal-ID für den Kanal "Allgemein" stimmt immer mit der Team-ID überein.
Der folgende Beispielcode wird verwendet, um die Liste der Kanäle in einem Team abzurufen:
public class MyBot : TeamsActivityHandler
{
// Override this in a derived class to provide logic specific to Message activities.
protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
// Returns a list of channels in a Team. This only works in team scoped conversations.
IEnumerable<ChannelInfo> channels = await TeamsInfo.GetTeamChannelsAsync(turnContext, turnContext.Activity.TeamsGetTeamInfo().Id, cancellationToken);
// Sends a message activity to the sender of the incoming activity.
await turnContext.SendActivityAsync($"The channel count is: {channels.Count()}");
}
}
Codebeispiel
Vollständige Arbeitsbeispiele zur Veranschaulichung der Funktionalität finden Sie in den folgenden Teams-Beispielen für Bot Framework:
| Beispielname | Beschreibung | .NET | Node.js | Python | Manifest |
|---|---|---|---|---|---|
| Teams-Unterhaltungsbot | Diese App veranschaulicht Botunterhaltungsereignisse und unterstützt adaptive Karten, Lesebestätigungen und Nachrichtenaktualisierungsereignisse. Es umfasst immersive Reader-Unterstützung für Barrierefreiheit. | View | View | View | View |
| Authentifizierung mit OAuthPrompt | Diese Beispiel-App veranschaulicht, wie ein Bot die Teams-Authentifizierung verwenden kann. | View | View | View | View |
| Teams-Dateiupload | Dieses Botbeispiel für Teams veranschaulicht Die Funktionen zum Hochladen von Dateien mithilfe von Bot Framework v4, sodass Benutzer Dateien hochladen und Inlinebilder in Chats anzeigen können. | View | View | View | View |
| Dialog (in TeamsJS v1.x als Aufgabenmodul bezeichnet) | In dieser Beispiel-App wird veranschaulicht, wie Dialoge (in TeamsJS v1.x als Aufgabenmodule bezeichnet) mit Bot Framework v4 verwendet werden. | View | View | View | View |
| Starten eines neuen Threads in einem Kanal | Diese App zeigt, wie Sie einen Konversationsthread in einem bestimmten Teams-Kanal mit Bot Framework v4 starten. | View | View | View | View |
| Lokalisierung von Teams-Apps | In diesem Beispiel wird veranschaulicht, wie Die Lokalisierung für Microsoft Teams-Apps mithilfe von Bots und Registerkarten implementiert wird. | View | View | – | View |