Obtenir Teams contexte spécifique pour votre bot

Important

Les exemples de code de cette section sont basés sur la version 4.6 et les versions ultérieures du SDK Bot Framework. Si vous recherchez de la documentation pour les versions antérieures, consultez la section bots - V3 SDK dans le dossier Ressources de la documentation.

Un bot peut accéder à des données de contexte supplémentaires sur une équipe ou une conversation sur laquelle il est installé. Ces informations peuvent être utilisées pour enrichir les fonctionnalités du bot et fournir une expérience plus personnalisée.

Récupérer la liste ou le profil utilisateur

Votre bot peut interroger la liste des membres et leurs profils utilisateur de base, notamment les ID d’utilisateur Teams et les informations de Azure Active Directory (AAD), telles que le nom et objectId. Vous pouvez utiliser ces informations pour corréler les identités des utilisateurs. Par exemple, pour vérifier si un utilisateur s’est connecté à un onglet à l’AAD ses informations d’identification, il est membre de l’équipe. Pour obtenir les membres de la conversation, la taille de page minimale ou maximale dépend de l’implémentation. La taille de page inférieure à 50, traitée comme 50 et supérieure à 500, est limitée à 500. Même si vous utilisez la version non pagyée, elle n’est pas fiable dans les grandes équipes et ne doit pas être utilisée. Pour plus d’informations, voir les modifications apportées aux API Teams bot pourrécupérer des membres d’équipe ou de conversation.

L’exemple de code suivant utilise le point de terminaison pagyé pour récupérer la liste :

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);
     }
}

Après avoir récupéré la liste ou le profil utilisateur, vous pouvez obtenir les détails d’un seul membre. Actuellement, pour récupérer des informations pour un ou plusieurs membres d’une conversation ou d’une équipe, utilisez les API Microsoft Teams bot pour C# ou pour les TeamsInfo.GetMembersAsync TeamsInfo.getMembers API TypeScript.

Obtenir les détails d’un seul membre

Vous pouvez également récupérer les détails d’un utilisateur particulier à l’aide Teams ID d’utilisateur, UPN ou AAD’objet.

L’exemple de code suivant est utilisé pour obtenir les détails d’un seul membre :

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);
    }
}

Une fois que vous avez obtenir les détails d’un seul membre, vous pouvez obtenir les détails de l’équipe. Actuellement, pour récupérer des informations pour une équipe, utilisez les API Microsoft Teams bot pour C# TeamsInfo.GetMemberDetailsAsync ou TeamsInfo.getTeamDetails TypeScript.

Obtenir les détails de l’équipe

Lorsqu’il est installé dans une équipe, votre bot peut interroger des métadonnées sur cette équipe, y compris l’ID AAD groupe.

L’exemple de code suivant est utilisé pour obtenir les détails de l’équipe :

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.");
        }
    }
}

Une fois que vous avez obtenir les détails de l’équipe, vous pouvez obtenir la liste des canaux d’une équipe. Actuellement, pour récupérer des informations pour une liste de canaux dans une équipe, utilisez les API de bot Microsoft Teams pour C# ou pour les TeamsInfo.GetTeamChannelsAsync TeamsInfo.getTeamChannels API TypeScript.

Obtenir la liste des canaux d’une équipe

Votre bot peut interroger la liste des canaux d’une équipe.

Notes

  • Le nom du canal général par défaut est renvoyé pour null autoriser la localisation.
  • L’ID de canal pour le canal général correspond toujours à l’ID d’équipe.

L’exemple de code suivant est utilisé pour obtenir la liste des canaux d’une équipe :

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 exemples de bot

Exemple de code

Pour obtenir des exemples de travail complets montrant les fonctionnalités, voir les exemples de Teams pour Bot Framework :

Échantillon Description .NET JavaScript Python
Bot de conversation Teams Gestion des événements de messagerie et de conversation. View View View
Authentification avec OAuthPrompt Authentification et messagerie de base dans Bot Framework v4. View View View
Teams téléchargement de fichier Échange de fichiers avec un bot dans une conversation un-à-un. View View View
Module de tâche Récupération d’un module de tâche et de valeurs à partir de cartes qu’il comprend pour une extension de messagerie. View View View
Démarrer un nouveau thread dans un canal Création d’un thread dans un canal. View View View

Étape suivante