Abrufen Teams spezifischen Kontexts für Ihren Bot

Wichtig

Die Codebeispiele in diesem Abschnitt basieren auf Version 4.6 und neueren Versionen des Bot Framework SDK. Wenn Sie nach Dokumentation für frühere Versionen suchen, lesen Sie den Abschnitt "Bots - v3 SDK" im Ressourcenordner 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 personalisierte Erfahrung zu bieten.

Abrufen des Listen- oder Benutzerprofils

Ihr Bot kann die Liste der Mitglieder und deren grundlegende Benutzerprofile abfragen, einschließlich Teams Benutzer-IDs und Azure Active Directory (AAD)-Informationen, z. B. Name und objectId. Sie können diese Informationen verwenden, um Benutzeridentitäten zu korrelieren. Um beispielsweise zu überprüfen, ob sich ein Benutzer über AAD Anmeldeinformationen bei einer Registerkarte angemeldet hat, ist er Mitglied des Teams. Zum Abrufen von Unterhaltungsmitgliedern hängt die minimale oder maximale Seitengröße von der Implementierung ab. Seitengröße kleiner als 50, werden als 50 behandelt und größer als 500, sind auf 500 begrenzt. Auch wenn Sie die nicht seitenweise Version verwenden, ist sie in großen Teams unzuverlässig und darf nicht verwendet werden. Weitere Informationen finden Sie unter Änderungen an Teams Bot-APIs zum Abrufen von Team- oder Chatmitgliedern.

Im folgenden Beispielcode wird der seitenierte 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
        {
            var currentPage = await TeamsInfo.GetPagedMembersAsync(turnContext, 100, continuationToken, cancellationToken);
            continuationToken = currentPage.ContinuationToken;
            members.AddRange(currentPage.Members);
         }
         while (continuationToken != null);
     }
}

Nachdem Sie die Liste oder das Benutzerprofil abgerufen haben, können Sie Details zu einem einzelnen Mitglied abrufen. Verwenden Sie derzeit die Microsoft Teams-Bot-APIs TeamsInfo.GetMembersAsync für C# oder TypeScript-APIs, um Informationen für ein oder mehrere Mitglieder eines Chats oder TeamsInfo.getMembers Teams abzurufen.

Abrufen von Details zu einzelnen Membern

Sie können die Details eines bestimmten Benutzers auch mithilfe seiner Teams Benutzer-ID, UPN oder AAD Objekt-ID abrufen.

Der folgende Beispielcode wird verwendet, um Details zu einzelnen Membern abzurufen:

public class MyBot : TeamsActivityHandler
{
    protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
    {
        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. Verwenden Sie derzeit die Microsoft Teams-Bot-APIs TeamsInfo.GetMemberDetailsAsync für C# oder TypeScript, um Informationen für ein Team TeamsInfo.getTeamDetails abzurufen.

Abrufen von Teamdetails

Wenn er in einem Team installiert ist, kann Ihr Bot Metadaten zu diesem Team abfragen, einschließlich der AAD 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)
    {
        TeamDetails teamDetails = await TeamsInfo.GetTeamDetailsAsync(turnContext, turnContext.Activity.TeamsGetTeamInfo().Id, cancellationToken);
        if (teamDetails != null) {
            await turnContext.SendActivityAsync($"The groupId is: {teamDetails.AadGroupId}");
        }
        else {
            await turnContext.SendActivityAsync($"Message did not come from a channel in a team.");
        }
    }
}

Nachdem Sie Details zum Team erhalten haben, können Sie die Liste der Kanäle in einem Team abrufen. Um Informationen zu einer Liste von Kanälen in einem Team abzurufen, verwenden Sie derzeit die Microsoft 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 standardmäßigen Kanals "Allgemein" wird null zurückgegeben, um die Lokalisierung zuzulassen.
  • 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
{
    protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
    {
        IEnumerable<ChannelInfo> channels = await TeamsInfo.GetTeamChannelsAsync(turnContext, turnContext.Activity.TeamsGetTeamInfo().Id, cancellationToken);

        await turnContext.SendActivityAsync($"The channel count is: {channels.Count()}");
    }
}

Teams Bot-Beispiele

Codebeispiel

Vollständige Arbeitsbeispiele, die die Funktionalität demonstrieren, finden Sie in den folgenden Teams Beispielen für Bot Framework:

Beispiel Beschreibung .NET JavaScript Python
Teams-Unterhaltungsbot Behandlung von Nachrichten- und Unterhaltungsereignissen. View View View
Authentifizierung mit OAuthPrompt Authentifizierung und grundlegendes Messaging in Bot Framework v4. View View View
Teams Dateiupload Austauschen von Dateien mit einem Bot in einer 1:1-Unterhaltung. View View View
Aufgabenmodul Abrufen eines Aufgabenmoduls und Von darin enthaltenen Werten für eine Messaging-Erweiterung. View View View
Starten eines neuen Threads in einem Kanal Erstellen eines neuen Threads in einem Kanal. View View View

Nächster Schritt